多串口終端
此功能計(jì)劃使用存儲(chǔ)-轉(zhuǎn)發(fā)模式,先將數(shù)據(jù)從Usart2中的數(shù)據(jù)全部接收完成,再將數(shù)據(jù)轉(zhuǎn)發(fā)到對(duì)應(yīng)串口外設(shè)。
此方案的優(yōu)勢(shì):可以分時(shí)復(fù)用多串口接口。比較好的應(yīng)用于主-從協(xié)議棧,如Modbus-RTU協(xié)議棧。
此方案的劣勢(shì):對(duì)流式數(shù)據(jù)不太友好。
硬件設(shè)計(jì):
其實(shí)硬件設(shè)計(jì)上面并沒(méi)有突出的事項(xiàng),只是利用了STM32G070支持多串口外設(shè),且每個(gè)串口外設(shè)支持RS485的自動(dòng)換向驅(qū)動(dòng)。芯片功能強(qiáng)大之后,在硬件設(shè)計(jì)上面就顯得簡(jiǎn)單的多了。這里版主也就不再過(guò)多的講述,大家參考一下官方的設(shè)計(jì)方案或者RS485的常規(guī)參考設(shè)計(jì)即可。
軟件設(shè)計(jì):
軟件設(shè)計(jì)上面,版主采用了三段式的設(shè)計(jì)方案,引入RTOS的信號(hào)量與中斷的設(shè)計(jì)方案。為了方便大家的理解,版主繪制了下面的數(shù)據(jù)流程圖供大家分析。
大致的設(shè)計(jì)思路就是:數(shù)據(jù)流輸入,數(shù)據(jù)流調(diào)度與數(shù)據(jù)輸出,三個(gè)部分。在數(shù)據(jù)的流轉(zhuǎn)過(guò)程中,在數(shù)據(jù)接收完成,調(diào)試前,調(diào)試后均添加回調(diào)函數(shù)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)流的過(guò)濾處理,如數(shù)據(jù)格式的轉(zhuǎn)換,數(shù)據(jù)包校驗(yàn)與丟棄等。
來(lái)源:電子產(chǎn)品世界論壇
審核編輯:湯梓紅
-
MODBUS
+關(guān)注
關(guān)注
28文章
2061瀏覽量
79117 -
串口
+關(guān)注
關(guān)注
14文章
1586瀏覽量
79309 -
RTU
+關(guān)注
關(guān)注
0文章
433瀏覽量
29331
發(fā)布評(píng)論請(qǐng)先 登錄
如何設(shè)置STM32G070在工作電源降低到2.7V以下就復(fù)位停機(jī)?
stm32G070串口設(shè)置外部中斷觸發(fā)退出低功耗后重新變?yōu)?b class='flag-5'>串口,串口發(fā)送后退出低功耗為什么會(huì)卡死?
STM32G070 ADC如何禁用內(nèi)部基準(zhǔn)?
stm32g070怎么調(diào)試才能降低功耗?
請(qǐng)問(wèn)STM32G070的DMA支持把sram的數(shù)據(jù)搬到Flash嗎?
stm32G070 GPIO的輸出能力很弱的原因?
如何用Arduino開(kāi)發(fā)STM32G070?
STM32G070 UART串口,低波特率傳送數(shù)據(jù)時(shí),TIMER出現(xiàn)嚴(yán)重延時(shí)現(xiàn)象如何解決?
如何利用STM32G070點(diǎn)亮LED
STM32G070的4個(gè)引腳相關(guān)資料推薦
請(qǐng)問(wèn)如何在STM32G070中使用DSP?
STM32G070 DMA ADC通道數(shù)據(jù)錯(cuò)位
實(shí)戰(zhàn)經(jīng)驗(yàn) | 移植 SBSFU 到 STM32G070 的過(guò)程
移植 SBSFU 到 STM32G070 的過(guò)程

評(píng)論