最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

STM32 HAL庫 MODBUS-RTU 串口通信

2021-07-15 17:27 作者:僚機(jī)Wingplane  | 我要投稿

????????現(xiàn)行市場上的MODBUS實(shí)現(xiàn)都是官方標(biāo)準(zhǔn)的某種變體。不同的供應(yīng)商設(shè)備之間可能無法正確的通信。我根據(jù)自己的需求用?MODBUS -RTU協(xié)議寫了一個(gè)通過串口通信的實(shí)現(xiàn)。

????????MODBUS協(xié)議的介紹可以參考這篇

? ? ????串口的配置可以參考之前寫的這兩篇

其中可以更改的部分中

本從機(jī)的地址碼是0x01

功能1的功能碼是0x78(這是MODBUS協(xié)議的自定義功能部分)

CRC校驗(yàn)失敗的返回功能碼是0x90

沒有此功能的返回功能碼是0x91

user_uart.h

????????在中斷接收到信息后,main.c主循環(huán)中會(huì)進(jìn)入Modbus_Service。首先判斷接收到的地址位,再判斷功能位,最后校驗(yàn)CRC。如果地址位不一致,那么該信息不是發(fā)送給該從機(jī)的,不繼續(xù)接收。如果功能位不存在,則返回No_Function功能碼和接收到的信息。如果CRC校驗(yàn)位校驗(yàn)有問題,則返回?CRC_Cheak_Wrong功能碼和接收到的信息。在執(zhí)行完后,清空串口接收標(biāo)志位,接收下一條數(shù)據(jù)。

????????CRC校驗(yàn)使用的是CRC-16查表法,依據(jù)所采用多項(xiàng)式的不同,得到的結(jié)果也不相同。常用的多項(xiàng)式有CRC-16/IBM和CRC-16/CCITT等。這里代碼采用的多項(xiàng)式為CRC-16/IBM: X16+X15+X2+1。

user_uart.c

main.c

可以改進(jìn)的部分:

? ? ? ? 首先是串口接收和發(fā)送可以改成DMA的形式,防止消耗過多的資源。其次接收串口信息時(shí)應(yīng)該建立一個(gè)FIFO寄存器,以達(dá)到減少漏收的情況。

STM32 HAL庫 MODBUS-RTU 串口通信的評論 (共 條)

分享到微博請遵守國家法律
焉耆| 丽江市| 镇江市| 静安区| 木里| 云龙县| 台中市| 彩票| 永登县| 邵武市| 阳曲县| 彰化市| 罗平县| 巩义市| 阿拉善盟| 澄城县| 湖南省| 铁力市| 沁阳市| 教育| 博爱县| 阆中市| 永登县| 馆陶县| 云安县| 乐业县| 奈曼旗| 奉节县| 桦甸市| 蓝山县| 酉阳| 三门县| 东山县| 平潭县| 福泉市| 阳泉市| 栾川县| 永春县| 田林县| 台江县| 青海省|