STM32 modbus程序
STM32 modbus程序
/*****************************************************
modbus-rtu 通讯规约
通讯方式:rs-485 半双功
校验方式:crc16
停止位:2位
编写:孙可
编写日期:2008年6月18日
版本:v0.2
编程思路:
1.串口中断允许自动接收总线上的信息,当接收的
字节后超过3.5个字节时间没有新的字节认为本次
接收完成,接收完成标志置1;如果接收完成标志已
经置1又有数据进来则丢弃新来的数据。
2.串口接收数据的处理, 当接收完成标志置1进入
接收数据处理, (1)首先判断接收的第一位数据与
本机地址是否相同,如果不相同清空接收缓存不发
送任何信息; (2)接收的第一位数据与本机地址相
同,则对接收缓存中的数据进行crc16校验,如果接
收的校验位与本校验结果不相同清空接收缓存不发
送任何信息;
(3)如果crc16校验正确则根据数据串中的命令码进
行相应的处理。
******************************************************/
#include "modbus.h"
u8 Com0_id = 0x05;//本机串口0的通讯地址
u8 Uart0_rev_buff[100];//com0串口接收缓冲区
u8 Uart0_send_buff[100];//com0串口发送缓冲区
vu8 Uart0_rev_count;
vs8 Uart0_send_counter = 0;
vu8 Uart0_rev_comflag;
vu8 Crc_counter = 0;//com0校验计数器
vu8 *Uart0_send_pointer = Uart0_send_buff;//com0串口发送指针
vu16 Mkgz_bz = 0;//模块故障标志1:输入异常,2:过压,3:欠压,4:过温
vu16 Out_current = 50;//输出电流
vu16 Out_voltage = 240;//输出电压
vu16 Mkzt_bz = 0;//模块状态标志
vu16 OutX_current = 1000;//输出限流
vu16 Jc_voltage = 2530;//均充电压
vu16 Fc_voltage = 2400;//浮充电压
vu16 user_day = 1825;//使用天数
void Delay(vu32 nCount);
unsigned short getCRC16(volatile unsigned char *ptr,unsigned char len) ;
void mov_data(u8 a[100],u8 b[100],u8 c);
void Modbus_Function_3(void);
void Modbus_Function_6(void);
/***************************************
函数名称:crc16校验
函数功能:crc16校验
函数输入:字节指针*ptr,数据长度len
函数返回:双字节crc
函数编写:孙可
编写日期:2008年6月9日
函数版本:v0.2
****************************************/
unsigned short getCRC16(volatile unsigned char *ptr,unsigned char len)
{
unsigned char i;
unsigned short crc = 0xFFFF;
if(len==0)
{
len = 1;
}
你可能喜欢
- modbus+rtu
- S7-200 modbus rtu modscan32
- modbus功能码
- modbus rtu
- ds18b20程序
- modbus+TCP+IP
- S7-200与V20的MODBUS RTU通讯12页
- S7-200 MODBUS RTU通讯教程10页
- S7-200 Modbus RTU 通信23页
- Modbus RTU协议在S7-200中的应用6页
- Modbus RTU协议在S7-200中的应用6页
- Modbus RTU协议在S7-200中的应用7页
- modbus rtu报文格式1页
- STC89C58RD+写的modbus rtu master主站的程序7页
- profibus-dp to modbus rtu or ASCLL9页
- modbus_rtu_crc计算方法2页
- modbus rtu通信协议串口通讯22页
- 收集的modbus rtu 源代码34页
- ds18b20程序3页
- 数字温度传感器ds18b20程序(含1602显示液晶程序)3页
- ds18b20程序2页
- ds18b20程序 lm386 超声波测距9页
- ds18b20程序19页
- 5110+ds18b20程序3页
- modbus_tcpip49页
- MODBUS-TCPIP3页
- Modbus TCPIP入门42页
- MODBUS TCP IP21页
- MODBUS TCPIP20页
- Modbus TCP IP6页


