目标: 丢任意大小的一堆数据(而不是16字节这样的FIFO大小)给特定buffer,然后usart自己传输,不需要任何的CPU干预, 传送完了来个中断通知下.
一) 直接通过STM32cubeMx生成工程:
1) 设定使用的时钟源, 如下图: (注意: 你实际的板子可能跟我的不一样)
2) 选定系统时钟.
3) 按实际情况修改时钟配置:
4) 选择Pinout & Configuration/Categories/Connectivity/USART1, 如下图所示:
5) 修改USART1配置:
其它选择默认就行了.
6) 给USART1 添加DMA:
7) DMA配置:
8) DMA配置完后切换到旁边的 NVIC Settings, 界面应该是这样样子的, 不要钩选usart1中断:
9) 修改工程配置选项:
10) 最后一步, 点右上解的 "GENERATE CODE"就OK了, 生成代码后你可以先编译下, 然后再添加自己的代码.
代码没上传, 因为公司网络传不出去, 后面不知道是否能补传, 如有不明白的, 欢迎留言讨论, 共同进步!