找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2287|回復(fù): 7
收起左側(cè)

STM32C8T6單片機如何讓三串口同時通信不出現(xiàn)相互干擾?

[復(fù)制鏈接]
ID:506700 發(fā)表于 2022-1-4 16:53 | 顯示全部樓層 |閱讀模式
目前在做一個工業(yè)控制電機同時還要采集傳感器數(shù)據(jù)項目遇到個問題,單片機芯片用的stm32c8t6用了3個串口,協(xié)議是MODBUS_RTU串口協(xié)議,一個串口接MCGS屏幕就地控制(就地屏幕是主機,板子是從機),一個串口接遠(yuǎn)程控制(遠(yuǎn)程屏幕是主機,板子是從機),還有一個串口接傳感器接收數(shù)據(jù)(板子是主機,傳感器是從機),屏幕是500ms采集一次 200ms等待時間,遠(yuǎn)程也是一樣。但是會出現(xiàn)一個問題就是遠(yuǎn)程控制的時候,經(jīng)常會打斷就地屏幕上的數(shù)據(jù)采集,屏幕是MCGS,一旦被打斷就會顯示通信錯誤。如何能做到3個串口同時通信(一直收發(fā)數(shù)據(jù))而互不干擾,沒有用ucos,寫的裸程序。有沒有大佬給個思路...感謝
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2022-1-4 17:33 | 顯示全部樓層
接收中斷里面只負(fù)責(zé)接收數(shù)據(jù)放到隊列里面,主循環(huán)里面處理接收數(shù)據(jù)。
回復(fù)

使用道具 舉報

ID:313048 發(fā)表于 2022-1-4 18:09 | 顯示全部樓層
每個串口獨立中斷,像沙發(fā)所說,中斷里面做數(shù)據(jù)接收,弄3個循環(huán)隊列存儲數(shù)據(jù),在主函數(shù)里面去做相應(yīng)的處理就可以了。
回復(fù)

使用道具 舉報

ID:506700 發(fā)表于 2022-1-5 08:51 | 顯示全部樓層
AUG 發(fā)表于 2022-1-4 18:09
每個串口獨立中斷,像沙發(fā)所說,中斷里面做數(shù)據(jù)接收,弄3個循環(huán)隊列存儲數(shù)據(jù),在主函數(shù)里面去做相應(yīng)的處理 ...

我去試一試
回復(fù)

使用道具 舉報

ID:506700 發(fā)表于 2022-1-5 08:51 | 顯示全部樓層
Hephaestus 發(fā)表于 2022-1-4 17:33
接收中斷里面只負(fù)責(zé)接收數(shù)據(jù)放到隊列里面,主循環(huán)里面處理接收數(shù)據(jù)。

我去試試,十分感謝
回復(fù)

使用道具 舉報

ID:506700 發(fā)表于 2022-1-5 08:52 | 顯示全部樓層
AUG 發(fā)表于 2022-1-4 18:09
每個串口獨立中斷,像沙發(fā)所說,中斷里面做數(shù)據(jù)接收,弄3個循環(huán)隊列存儲數(shù)據(jù),在主函數(shù)里面去做相應(yīng)的處理 ...

非常非常謝謝
回復(fù)

使用道具 舉報

ID:592807 發(fā)表于 2022-1-5 08:55 | 顯示全部樓層
我覺得你應(yīng)該學(xué)習(xí)一下硬漢的USART_FIFO模式,據(jù)說他最多能同時驅(qū)動6個串口。硬漢永遠(yuǎn)的神

usart_fifo.rar

7.35 KB, 下載次數(shù): 40

回復(fù)

使用道具 舉報

ID:506700 發(fā)表于 2022-1-5 11:21 | 顯示全部樓層
Hephaestus 發(fā)表于 2022-1-4 17:33
接收中斷里面只負(fù)責(zé)接收數(shù)據(jù)放到隊列里面,主循環(huán)里面處理接收數(shù)據(jù)。

但是我有一個定時器要給傳感器每200ms發(fā)送命令,這個會影響main函數(shù)里面的操作嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表