------------恢復內容開始------------
1. 前言
在單片機通信項目中,經常會用到發送數據,大家有沒有想過什么方式才是最優的方式?
大家是否想過有沒有什么標准的方案可以解決一切可能?
2. 基本應用
1.創建一個緩存區

2.串口接收的數據插入緩存,每隔500ms插入數據到緩存

3.沒有在中斷發送數據,提取緩存數據,執行中斷發送

4. 測試

3.說明
上面的程序實際上還是使用中斷發送數據,只不過數據是先存入緩存,然后從緩存里面取出來以后再發送.
以上發送數據程序基本上適用於各種大大小小的項目.
4.擴展(加入時間間隔-方式1)
以上程序有個問題:每條數據之間基本上沒有時間間隔
只要發送完了上一條,立馬發送下一條


發送完數據以后設置一個變量為20,該變量在定時器每隔1ms減一,
等到減到0以后才會再次提取發送數據.
但是上面的發送時間受主循環延時的影響.
5.擴展(加入時間間隔-方式2)
1.在定時器里面每隔20ms提取一次數據,打開串口發送中斷

2.串口中斷發送數據

3.其它地方只需要插入數據即可

6.DMA發送
1.配置串口以DMA方式發送數據

2.配置DMA

3.如果DMA沒有發送數據,則重新設置DMA

4.測試


