void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx);
void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct);
void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct);
void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState);
void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState);
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber);
uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx);
FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG);
void DMA_ClearFlag(uint32_t DMAy_FLAG);
ITStatus DMA_GetITStatus(uint32_t DMAy_IT);
void DMA_ClearITPendingBit(uint32_t DMAy_IT);
以上是官方头文件里的函数
DMA_DeInit与DMA_Init里是对DMA的初始化方面的。在Init里面第一个参数是通道,比如说DMA1_Channel6,DMA_Cmd是对DMA的操控,后面的参数NewState一般是Enable之类的
正如函数名的定义那样,这些函数通俗易懂,值得需要了解的是DMA_IT这个定义,是有关中断设置的,能被以下几个固定的值赋值,定义也如英文解释的那个样子,DMA_IT_TC,传输结束后进行中断,DMA_IT_HT,半传输中断.DMA_IT_TE:传输错误中断。void DMA_ClearFlag(uint32_t DMAy_FLAG);这个是清除标志位,在传输结束后会自动标志,所以当我们想重新使用的时候必须要自己清零。
* @param DMA_IT: specifies the DMA interrupts sources to be enabled
* or disabled.
* This parameter can be any combination of the following values:
* @arg DMA_IT_TC: Transfer complete interrupt mask
* @arg DMA_IT_HT: Half transfer interrupt mask
* @arg DMA_IT_TE: Transfer error interrupt mask
* @param NewState: new state of the specified DMA interrupts.
* This parameter can be: ENABLE or DISABLE.
今天晚上看的下一章是常用存储器介绍
存储器一般是RAM与ROM,然后还有FLASH,RAM分DRAM与SRAM,DRAM是动态的,断电后数据会消失,而SRAM是静态,以锁存器存储数据,SRAM一般用于高速缓存。
然后就是ROM与FLASH(NOR与NAND,NOR地址线与数据线分开,由地址得到数据不需要复杂的转化,然而NAND地址线与数据线是共用的,而且NOR可以字节读取,而NAND只能块读取,而且NAND的寿命不比NOR长)