本文主要是介绍用新唐的NANO130 M0实现modbus的0306 功能码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在用新唐的NANO130 M0实现了modbus的03,和06 功能码,附代码
/**************************************************************************//**
* @file modbus.h
* @version V1.00
* $Revision: 00$
* $Date: 17/8/26
* @brief modbusÐÒéµÄÍ·Îļþ
*
* @note
* Copyright (C) ck.huang.
*****************************************************************************/
#ifndef __modbus_H__
#define __modbus_H__
typedef struct
{
uint8_t myadd; //±¾É豸µÄµØÖ·
uint8_t rcbuf[100]; //modbus½ÓÊÕµ½Êý¾Ý»º³åÇø
uint16_t timout; //Êý¾Ý³¬Ê±¼ÆÊýÆ÷
uint8_t recount; //modbus¶Ë¿ÚÒѾÊÕµ½µÄÊý¾Ý¸öÊý
uint8_t timrun; //¿ªÊ¼¼ÆʱµÄ±êÖ¾
uint8_t reflag; //ÊÕµ½Ò»Ö¡Êý¾ÝµÄ±êÖ¾
uint8_t sendbuf[100]; //·¢Ë͵ÄÊý¾Ý»º³åÇø
}MODBUS;
extern MODBUS modbus;
void modbusInit(void);
void modbusEvent(void);
#endif
C实现:
/**************************************************************************//**
* @file modbus.c
* @version V1.00
* $Revision: 00$
* $Date: 17/8/16
* @brief modbusµÄ³ÌÐòÎļþ
*
* @note
* Copyright (C) ck.huang.
*****************************************************************************/
#include "Nano100Series.h"
#include "modbus.h"
#include "modbusTimer.h"
#include "modbusUart.h"
#include "ModbusCRC.h"
MODBUS modbus; //ÉêÃ÷Ò»¸ömodbusÊý¾ÝÀàÐ͵ÄÊý¾Ý
extern uint16_t reg[];
void modbusInit(void)
{
modbus.myadd=4; //±¾´Ó»úµÄµØÖ·
modbus.timrun=0; //¼Æʱ±êÖ¾ÇåÁã
Timer0_Init();
RS485_Init();
UART
这篇关于用新唐的NANO130 M0实现modbus的0306 功能码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!