久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機與傳感器串口通訊問題
[打印本頁]
作者:
延陵小
時間:
2017-4-8 20:08
標題:
單片機與傳感器串口通訊問題
請幫幫小弟。
程序目的為單片機循環發送讀取指令給傳感器,然后接收傳感器的應答數據中的第四位。遇到的問題是,本來在持續發送的讀取指令在接收過一次應答數據后就不再發送。程序如下。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar table[]={0x01,0x03,0x00,0x00,0x00,0x01,0x84,0x0A};
uchar rec[7];
uchar date; //定義數據
uchar rec_flag; //接收數據標識,0 未接收數據 1 接收數據
uint num=0,acount=0,i;
void delay(uint);
void init_uart(void)
{
TMOD = 0x20; //定時器T1使用工作方式2
TH1 = 0xFD; //設置初值
TL1 = 0xFD;
TR1 = 1; //開始計時
PCON = 0x00; //SMOD=0;PCON第7位
SCON = 0x50; //工作方式1,波特率9600bit/s,允許接收
ES=1;
EA = 1; //開啟總中斷
}
void send(void)
{
for(num=0;num<=7;num++)
{
SBUF = table[num]; //發送數據
while(!TI); //等待發送完成
//delay(20);
TI = 0;
}
}
void receive(void)
{
if(RI==1) //檢測是否有數據接收
{
rec[acount] = SBUF; //接收數據
acount++;
RI = 0; //清除標志位
if(num==7) num=0;
}
}
void delay (uint i)
{
while(i--);
}
void main(void)
{
init_uart(); //初始化串行口
do
{
send();
delay(20000);
}
while(1);
}
void jieshou(void) interrupt 4
{
receive();
P1=rec[4];
RI=0;
}
作者:
延陵小
時間:
2017-4-8 20:33
做的是檢測光幕傳感器,應答數據第4位為被遮擋光束數量
作者:
imxuheng
時間:
2017-4-9 09:09
先用串口調試助手看看
作者:
ljwhylf
時間:
2017-4-9 10:39
謝謝!學了知識
作者:
延陵小
時間:
2017-4-9 14:41
imxuheng 發表于 2017-4-9 09:09
先用串口調試助手看看
串口助手和傳感器兩樣都試了,一樣的結果
作者:
延陵小
時間:
2017-4-9 21:06
問題已解決,receive子函數中num改成account。謝謝諸位點進來的大哥們
作者:
wpupup
時間:
2017-4-10 14:28
謝謝指引~
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日本在线免费看最新的电影
|
国产一区二区三区精品久久久
|
一区二区三区在线
|
精品一二区
|
超碰在线人人
|
av男人的天堂av
|
一区二区三区在线免费观看
|
玖草资源
|
av免费网站在线
|
欧美日韩专区
|
97色在线观看免费视频
|
日韩一区二区在线免费观看
|
亚洲国产精品视频一区
|
不卡一区二区在线观看
|
精品国产一级片
|
国产成人精品午夜视频免费
|
国产视频第一页
|
91久久国产综合久久
|
麻豆精品国产91久久久久久
|
99免费精品视频
|
亚洲日韩中文字幕一区
|
a国产视频
|
草久视频
|
日韩在线成人
|
久久99深爱久久99精品
|
九九伦理片
|
免费一级大片
|
麻豆hd
|
欧美日韩亚洲一区二区
|
91小视频在线
|
久久久国产精品
|
久久久久免费精品国产小说色大师
|
欧美一级在线免费观看
|
女同久久另类99精品国产
|
国产美女黄色片
|
在线色网站
|
99精品在线免费观看
|
国产一区二区精品
|
中文字幕日本一区二区
|
国产高清一区二区三区
|
天天操夜夜操免费视频
|