完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位高手请指点下,您的指导是他人前进的不竭动力。为什么我用51单片机发送5个字节的命令,传感器没有返回5个值,而我不用51单片机,直接用串口调试助手给CO2浓度传感器发送相同的5个字节的命令,CO2浓度传感器有5个字节的值返回过来呢?而且我用串口给这个51单片机发送5个命令也可以接收,并显示这5个字节数据处理后的数值。 如果能帮我解决这个问题,我将表示最诚挚的感谢。
//通信协议如下:波特率19200,8位数据位,一位停止位 #define N 5 //接收字节数 void uart_init(); void delay_ms(uint z); uchar flag,i; //删除无用变量 uchar code table[]={0xff,0xfe,0x02,0x02,0x03}; //发送5个人字节的命令 uchar table1[N]; //接收缓存数组 uchar j=0; uint Co2_Val,CO2_RANGE=5000; unsigned char num[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; void LCD_INIT(); void Data_Decode(uchar* ptr); void write_data(uchar data1); //lcd1602显示 void write_com(uchar command); void write_char(uchar line, uchar num, char a); main() { uchar *p; uint Co2_hi,n; uart_init(); LCD_INIT(); // while(1) { ES=0; for(i=0;i<5;i++) { SBUF=table[i]; while(!ti); TI=0; } ES=1; delay_ms(500); if(flag==1) { ES=0; p=table1; Data_Decode(p); //接收到的数据处理函数 Co2_hi=Co2_Val/1000; if(Co2_hi!=0) {write_char(0,1,num[Co2_hi]);} write_char(0,2,num[Co2_Val/100%10]); write_char(0,3,num[Co2_Val/10%10]); write_char(0,4,num[Co2_Val%10]); ES=1; flag=0; } delay_ms(50); } } void uart_init() //晶振11.0592,波特率19200 { TMOD = 0x20; SCON = 0x50; // SM0=0; SM1=1; REN=1; TH1 = 0xFD; TL1 = 0xFD; PCON=0x80; //波特率加倍 EA = 1; ES = 1; TR1 = 1; } void ser()interrupt 4 { RI=0; table1[j++]=SBUF; //存数据到接收缓存 if(j==N) //数组满时,允许处理 { flag=1; j=0; } } /**************************************** 名称:Data_Decode 功能: 数据解码 输入: 输出: ****************************************/ void Data_Decode(uchar* ptr) { unsigned long temp = 0; //FF FA 02 02 50 temp = ptr[3]; temp <<= 8; temp |= ptr[4]; if(temp >= CO2_RANGE) //限制最大值 { temp = CO2_RANGE - 1; } Co2_Val = temp; // 传感器通信指示: //---------------------------------------------------------------- // Time_REF.CO2_counter = 0; //传感器正常采样时间累计清零 // LP_Flash; } |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
878 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
936 浏览 2 评论
2044 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1145 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1568 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 16:56 , Processed in 0.575448 second(s), Total 52, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号