51串口是一种常用的硬件设备,它可以用来与其他设备进行通信。而在通信过程中,常常需要对传输的数据进行解析处理,其中包括解析json报文。
下面介绍一下如何在51串口上解析json报文:
#include<stdio.h> #include<string.h> #include<stdlib.h> #include <stc12c5a60s2.h> #define FOSC 11059200L #define BAUD 9600 #define TIMER0_RELOAD (65536L -(FOSC/12/32/BAUD)) typedef unsigned char uint8_t; typedef unsigned int uint16_t; static void Uart_Init(void) { SCON=0x50; TMOD|=0x20; TH1=TL1=TIMER0_RELOAD; TR1=1; } static void Timer0_Init(void) { AUXR |= 0x80; TMOD &= 0xF0; TL0 = 0x8F; TH0 = 0xFF; TF0 = 0; TR0 = 1; } void Uart_SendByte(unsigned char dat) { while(!TI); TI = 0; SBUF = dat; } void Uart_SendString(char *p) { while(*p) { Uart_SendByte(*p++); } } uint8_t Uart_GetByte(void) { while(!RI); RI = 0; return SBUF; } uint16_t json_get_number(const char *json) { char *p = strchr(json,':')+1; uint16_t number = 0; while((*p >= '0')&&(*p上述代码中,我们定义了json_parse函数,用于解析json报文的数字字段,并输出到串口上。在主函数中,我们使用定时器来轮询串口,获取传输过来的json串,并调用json_parse函数对其进行解析。
通过该方法,我们可以在51串口上方便地解析json报文,实现通信数据的处理,从而更好地进行数据交互。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。