1 | uint8_t aa = 0x55; |
变量保存在SRAM中。
1 | const uint8_t bb = 0x66; |
在STM32中,使用const定义的常量,存储在Flash中,如果有一个很大的查找表或者字库之类的,最好加const,保存在Flash中,避免占用SRAM。
1 | OLED_ShowHexNum(1,1,(uint32_t)&ADC1->DR,8); |
外设寄存器的地址,是固定的,在手册中可以查询到。
常用函数
1 | void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx); |
DMA恢复缺省配置
1 | void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct); |
DMA初始化
1 | void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct); |
DMA结构体初始化
1 | void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState); |
DMA使能
1 | void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState); |
DMA中断输出使能
1 | void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber); |
DMA设置当前数据寄存器,给传输计数器写数据
1 | uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx); |
DMA获取当前数据寄存器,返回传输计数器的值,可以查看还有多少数据没有转运。
1 | FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG); |
获取标志位状态
1 | void DMA_ClearFlag(uint32_t DMAy_FLAG); |
清除标志位
1 | ITStatus DMA_GetITStatus(uint32_t DMAy_IT); |
获取中断状态
1 | void DMA_ClearITPendingBit(uint32_t DMAy_IT); |
清除中断挂起位
8-1DMA数据转运
MyDMA.c
1 |
|
main.c
1 |
|
DMA+AD多通道
AD.c
1 |
|
main.c
1 |
|