STM8S003 -- LIN从机通讯 -- 程序代码讲解

 分享一些LIN的知识,我一开始是写的寄存器版本的从机通讯,但一直调试不通,出现了以下问题:

        1.在不开启中断的情况下,能发送数据,但开了中断就无法发送。

        2.一直无法检测到LIN断开符,即同步间隔段。

        后来通过查手册发现了问题所在,就改用了固件库函数版本,至于问题是什么,后面会提,先介绍一下STM8串口的LIN模式。

        相对于STM32,STM8在LIN通讯方面更有优势,因为STM8对LIN做了更详细的设计,通过寄存器可以更方便快捷地进行LIN通讯。STM8的LIN通讯可以配置主从模式,有自动重同步功能,在每次接收到LIN同步域后自动调整波特率发生器,还能LIN标识符奇偶校验自动检测等等。

目录

1. 主模式

2. 自动重同步功能禁用的从模式

3. 自动重同步功能启用的从模式

4. 从模式的寄存器配置

5. 寄存器版本代码问题所在

6. 从模式的库函数配置

7. 串口中断函数


1. 主模式

UART初始化:

        1. 设置UART_BRR2和UART_BRR1来选择期望的波特率。

        2. 将UART_CR3的LINEN位置1来使能LIN模式。

        3. 将UART_CR2的TEN位和REN位置1来使能发送器和接收器。

2. 自动重同步功能禁用的从模式

UART初始化ÿ

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
STM32 Modbus-RTU主机程序是一种针对STM32单片机开发的软件程序,用于实现Modbus通信协议中主站(主机)的功能。Modbus-RTU是一种常见的串行通信协议,用于在工业自动化系统中进行数据交换。 STM32 Modbus-RTU主机程序的设计目的是实现STM32单片机作为Modbus通信系统中的主站,具备与从站进行通信的能力。主机程序中通过串口与从站进行通信,接收和发送数据。主机程序需要实现Modbus协议的相关功能,包括函数码解析、地址解析、数据读写操作等。 在设计STM32 Modbus-RTU主机程序时,需要考虑以下几个关键因素。首先,需要确定从站的地址和通信参数,包括波特率、数据位数、停止位等。其次,需要实现Modbus通信协议的各种功能,如读取保持寄存器、读取输入寄存器、写入单个线圈等。此外,还要考虑主机与从站的通信方式和通信频率,以及数据的处理和解析方式。 在编写STM32 Modbus-RTU主机程序时,可以使用STM32的开发环境进行开发,如Keil等。首先建立串口通信功能,然后根据主机与从站的通信协议,实现相应的Modbus函数码解析和数据读写操作。最后进行测试和调试,确保主机程序能够正确地与从站进行通信,并实现所需的数据交换功能。 总之,STM32 Modbus-RTU主机程序是一种通过STM32单片机实现Modbus通信协议的软件程序。它能够使STM32单片机具备作为主站与从站进行通信的能力,并实现相关的数据读写操作。通过该主机程序,能够在工业自动化系统中实现高效可靠的通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值