modbus移植到S32K146

1、认识

modbus协议在工程应用领域非常广泛,本质上通过UART串口让主机和从机之间进行通信,modbus移植需要的知识涉及到:串口电路(485或者232),UART驱动,modbus协议

UART串口搞过单片机的应该都熟悉

485电路或者232电路网上有好多,主要注意抗干扰或者隔离问题

modbus协议网上也有很多教程

2、准备

1)硬件上485或者232电路测试好

2)软件上modbus协议栈,可以从官网直接下载,裸机版本

3、移植

1)直接把裸机modbus代码集成到自己工程中,编译不要出错

2)配置好两个重要驱动:1)uart串口;2)串口定时器

uart口用来发送和接收数据,串口定时器用来确认modbus帧与帧报文之间的时间间隔

3)调用初始化函数和轮询函数

4、调试

这部分比较重要,上面步骤一般大家都会按照流程执行,而调试部分比较复杂,每个人碰到的问题都不一样,我列举一下我当时调试碰到你的问题

1)UART可以接收数据,但是modbus协议栈接收不到完整一帧报文

2)主机通信卡住

3)一帧报文可以正常接收,但是无法发出完整一帧数据

4)硬件电路上拉和下拉问题

这里可以用modbus-poll工具去调试,重点设置好串口定时器,串口接收中断使能,串口发送使能,理解好modbus地址如何在代码中体现

 

posted @ 2023-02-26 16:07  涛哥nihao  阅读(168)  评论(0)    收藏  举报