標題: 單片機串口通訊問題求助 讀出來的數據總不對 [打印本頁]
作者: roninli 時間: 2022-3-4 07:12
標題: 單片機串口通訊問題求助 讀出來的數據總不對
讀一個傳感器,串口通訊,讀出來的數據總不對
cpu stc9c52 晶振11.0592
接口定義 (URAT)
通訊協議
串口數據流格式
說明: B1 的內容 2Ch 是模塊固定地址。校驗和(B6)=unit_8(B1+B2+B3+B4+B5)
污染氣體濃度值(mg/m3)=(TVOC 濃度高(B2)*256+TVOC 濃度低(B3))
程序:
void uart_init(u8 baud)
{
TMOD|=0X20; //設置計數器工作方式2
SCON=0X50; //設置為工作方式1
PCON=0X00;
TH1=0XFD; //計數器初始值設置
TL1=0XFD;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數器
}
void uart() interrupt 4 //串口通信中斷函數
{
u8 rec_data;
RI = 0; //清除接收中斷標志位
rec_data=SBUF; //存儲接收到的數據
if (0x2c != rec_data) --》這里0x2c是設備的地址,固定值,目前一直讀不到這個值 ,每次都能都出6個數值,但一直沒有0x2c
{
return;
}
uart_co2[uart_cou++]=rec_data;
if (uart_cou == 6)
{
if(uart_co2[5]==uart_co2[0]+uart_co2[1]+uart_co2[2]+uart_co2[3]+uart_co2[4])
temp_co2 = uart_co2[1]*256+uart_co2[2];
uart_cou = 0;
co2_ok = 1;
}
else
{
uart_cou = 0;
}
}
請指教
作者: xws245925587 時間: 2022-3-4 08:44
那你就看看這6個值,每次來一幀報文時,第一個字節是不是都是一樣的;
此外,你這個串口接收代碼邏輯不對,不應該每次都判斷是否為0x2c,不是就退出
作者: yzwzfyz 時間: 2022-3-4 09:06
1、不要在【void uart() interrupt 4】進行數據處理。數據處理放在中斷外進行。
2、【void uart() interrupt 4】只管下載數據,且來者不拒,來一個收一個。建立一個緩沖區,收到這此數據。
這時處理的好處是:【void uart() interrupt 4】耗時最小,占用主程序的時間就少,卡機的可能性就小。
分析緩沖區中的數據,就能知道問題在哪里了,如果沒有問題,也不影響你計算目標值。
作者: wulin 時間: 2022-3-4 10:10
建議定義一個接收完成標志,接收與解析分開處理
- void uart() interrupt 4 //串口通信中斷函數
- {
- static uchar i=0; //靜態計數變量
- RI=0; //接收中斷請求標志位清0
- uart_co2[i]=SBUF; //接收到的數據串保存在緩存數組
- if(uart_co2[0]==0x2c)//驗證數據頭(起始位)否則被后續數據覆蓋
- {
- i++;
- if(i>=6)
- {
- flag=1; //接收完成標志置1
- i=0; //計數變量清0
- }
- }
- }
- void parsing()//解析函數放在主函數中調用
- {
- uchar i;
- if(flag)
- {
- flag=0;
- if(uart_co2[5]==uart_co2[0]+uart_co2[1]+uart_co2[2]+uart_co2[3]+uart_co2[4])//驗證
- temp_co2 = uart_co2[1]<<8|uart_co2[2];//獲取有效數據
- for(i=0;i<6;i++)
- uart_co2[i]=0;//清除緩存數組
- }
- }
復制代碼
作者: zhxiufan 時間: 2022-3-4 10:27
可能是波特率有問題,主從雙方不一致,或者波特率誤差較大所致,將晶振改為11.0592MHz試試。
作者: roninli 時間: 2022-6-17 23:33
感謝大神指點,問題已解決,波特率設置問題。
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
特黄毛片
|
精品国产欧美一区二区三区成人
|
成人在线精品视频
|
av一级一片
|
成人精品一区二区三区中文字幕
|
欧美13videosex性极品
|
狠狠影院
|
久久精品国产免费看久久精品
|
久久精品二区亚洲w码
|
欧产日产国产精品国产
|
99久久久久国产精品免费
|
日本韩国欧美在线观看
|
美女久久视频
|
日韩欧美在线观看视频
|
91精品国产综合久久久久久丝袜
|
91中文字幕在线
|
色婷婷一区二区三区四区
|
91成人免费电影
|
久久av网站|
神马影院一区二区三区
|
99久久免费精品视频
|
成人精品久久日伦片大全免费
|
亚洲精品一区二区三区
|
日韩视频专区
|
亚洲 欧美 日韩在线
|
午夜久久|
日本免费视频在线观看
|
欧美性生交大片免费
|
电影午夜精品一区二区三区
|
最新中文字幕第一页视频
|
日韩精品一区二区三区中文在线
|
99色在线|
午夜影院在线观看免费
|
久久国产一区
|
欧美一级高潮片免费的
|
日韩免|
日日夜夜精品
|
国产三级电影网站
|
久久久天天
|
日韩精品免费视频
|
亚洲国产伊人
|