php接收rs485的数据如何处理,串口发送与接收数据

使用RS-485串口进行通讯。

1.定义串口接收数据的缓冲区,最大可以保存64个字节u8 RS485_RX_BUF1[64];

2.定义接收发送数据的长度 u8 RS485_RX_CNT;

3.发送数据的函数一般有两个printf和 USART_SendData,这里主要说USART_SendData的使用。printf实现的是格式化字符串,字符串比较有优势。

USART_SendData传递单个字符和指令。

4.给发送方定义一个标记位u32 flags_send1; flags_send1

5.要发送的事件很多定义一个枚举类型的数据,将所有要发送的事件放入枚举类型数据中。

typedef enum

{

E_ERROR = 0,

E_HKEYDN_RESET , //1

E_HKEYUP_RESET1 , //2

E_HKEYUP_EMER1 , //3

E_HKEYUP_PA1 , //4

E_HKEYDN_PTT1 , //5

E_HKEYUP_PTT1 , //6

E_HKEYUP_ATTD1 , //7

E_HKEYUP_PILOT1 , //8

E_CKEYDN_INUSE1 ,//9

};

枚举类型数据将第一个定为1,其他的数据依次加1.

6.定义一个发送事件函数SendCmd(u8 cmd)

flags_send1 |= EBIT(cmd);

UARTSend1();//用来发送数据的函数

定义

#define EBIT(a) (1u<

7.假设要传递E_CKEYDN_INUSE1事件,要实现事件的传递,就应该将事件做参数传入SendCmd(u8 cmd)函数

此时flags_send1 |= EBIT(9)=;由第四点知道flags_send1是一个32位的无符号整型数据。所以flags_send1 = 0000 0000 0000 0000 0000 0001 1111 1111

8.(1)UARTSend1()函数

void UARTSend1()

{

int I;

u8 sb[8] = {0x55,0xaa,0x00,0x00,0x00,0x00,0x00,0x00};

u8 rxlen=

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值