|
本帖最后由 电子星辰 于 2018-6-1 11:33 编辑 这是一个基于STM32F103RCT6的串口DMA+定时计数接收不定长数据和发送定长数据的串口程序。 (直接把主循环当定时器用了,如果要用定时器,直接把 if(USART_RX_STA > 0) { timer_count++; if(timer_count == 255) timer_count = 0;//定时器计数,防止变量溢出 } 放定时器中断里就可以了 ) 因项目需要做一个在定时发送定长数据的同时,随时准备接收不定长数据命令的串口功能。 发送部分一直都是用的HAL_UART_Transmit重定向printf。 接收部分一开始用的串口轮询接收,效率不高,放弃了。然后改用串口中断+定时器接收,结果出现了当接收频率稍高时就可能会进不了HAL_UART_Receive_IT函数的现象,发现是与HAL_UART_Transmit冲突,死锁了。现在把串口中断改用DMA解决了死锁的问题。 将这个串口程序做一个展示吧。 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
RS232.rar
2018-6-21 11:00 上传
点击文件名下载附件
1.71 KB, 下载次数: 132
文件名任意,就是一个串口收发,包括.c/.h两个文件
点评
谢谢支持!