stm32 dma usart学习笔记

stm32 dma usart学习笔记

ID:9235593

大小:932.22 KB

页数:8页

时间:2018-04-24

stm32 dma usart学习笔记_第1页
stm32 dma usart学习笔记_第2页
stm32 dma usart学习笔记_第3页
stm32 dma usart学习笔记_第4页
stm32 dma usart学习笔记_第5页
资源描述:

《stm32 dma usart学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DMA+USART学习笔记2016年7月26日17:12:12不是茄子串口是单片机常用的通信方式,这种方式在低成本应用中十分常见。平常我们常常使用重定向fputc()到对应串口的方式,实现printf()在单片机上使用。然而,在单片机中调用printf()会消耗大量的时间,一般来说使用printf函数,完成一次发送大约需要消耗1700us,对于实时控制来说,时间消耗过大,而且单片机在执行printf时,除了中断服务程序外,不能进行其他操作。而使用DMA串口的话,情况则大不相同,尽管发送相同长度的数

2、据,DMA串口消耗的时间大约为1400us,但是,单片机执行完DMA发送请求操作后,即可不必操作数据,执行这些操作的语句时间大约12us,而之后单片机即可以执行其他操作,再次发送数据时只需要检查是否发送完成即可,大大提高了数据传输的效率。代码详解:配置代码完成DMA串口的配置需要在主函数中调用三个配置函数。其实,不管几个配置函数,主要完成三个部分的操作。配置串口、配置串口DMA、配置相应的中断。USART_Config();USART_DMA_Config();NVIC_Configuration

3、();/*之前之所以一直没有进入DMA中断是因为我竟然没有调用NVIC_Configuration()*/在配置中,我将串口配置与串口DMA配置分开进行,这样对于配置函数能更好的做到见名知意。否则,以后用到ADC的时候,DMA的配置又要添加到一个函数中,太乱了。voidUSART_Config(){/*****Thefirststep:Enabletheclockofthedevices*****//*DeclareaUSARTinitalizationStructure*/USART_InitT

4、ypeDefUSART_InitStructure;/*DeclareaGPIOinitalizationStructure*/配置的第一步就是先开启GPIO_InitTypeDefGPIO_InitStructure;所用部分需要的时钟,在串口DMA中我们需要的时钟/*第1步:打开GPIO和USART部件的时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1

5、RCC_APB2Periph_GPIOA

6、是GPIOAbank,USART1RCC_APB2P

7、eriph_AFIO,ENABLE);以及复用IO时钟。/*第2步:将USARTTx的GPIO配置为推挽复用模式*/之后,首先配置好串口管GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;脚。GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);/*第3步:将USART

8、Rx的GPIO配置为浮空输入模式由于CPU复位后,GPIO缺省都是浮空输入模式,因此下面这个步骤不是必须的但是,我还是建议加上便于阅读,并且防止其它地方修改了这个口线的设置参数*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);/*第4步:配置USART参数-BaudRate=115200ba

9、ud-WordLength=8Bits-OneStopBit之后,配置串口的通信速率-Noparity的参数。-Hardwareflowcontroldisabled(RTSandCTSsignals)-Receiveandtransmitenabled*/USART_InitStructure.USART_BaudRate=115200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USA

10、RT_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx

11、USART_Mode_Tx;USART_Init(USART1,&USART_Init

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。