目标: 丢任意大小的一堆資料(而不是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了, 生成代碼後你可以先編譯下, 然後再添加自己的代碼.
代碼沒上傳, 因為公司網絡傳不出去, 後面不知道是否能補傳, 如有不明白的, 歡迎留言讨論, 共同進步!