久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機串口數據接收程序問題
[打印本頁]
作者:
YXLlll
時間:
2023-1-20 17:51
標題:
單片機串口數據接收程序問題
想要實現串口從上位機接收到的數據一個一個存入數組中,
但是經過測試,數據只能存到數組的第一位中,而且RI=0所在位置不同,存入內容長短不同
void UART1_Isr() interrupt 4
{
if(RI==1)
{
Data=SBUF;
if(Data!='\0')
{Sbuf[i++]=Data;}
uart_send(Sbuf[0]);
uart_string(Sbuf);RI=0;
作者:
chenbingjy
時間:
2023-1-21 20:11
你的程序不完整。而且發送的程序不要在中,有可能造成數據沒發送完又收到新的數據,會丟數據。
中斷只負責把數據送人緩沖區,其他處理在主函數。
作者:
Hephaestus
時間:
2023-1-23 11:18
代碼不全無法分析,i怎么定義的,代碼后面如何處理i的?
作者:
名字不是重點
時間:
2023-1-26 18:01
Sbuf[i++],,這個i是全局變量,該不會是被其它函數修改了吧?
全局變量最好能起個有意義的、個性的名字,不然有可能會被誤操作,我看用rxd_count就不錯
接收數據的數組Sbuf,盡量不要用系統關鍵字SBUF,雖然KEIL大小寫不一樣,你無法保證會不會被誤操作,你看rxd_arr[]如何?
起名字是個學問~~好聽、好拼寫、還要有意義,英文簡寫或漢語拼音都可以啊。不用這么懶吧?
作者:
Y_G_G
時間:
2023-2-9 23:58
當初學ModBus的時候寫的,代碼不怎么好,但也算是正確,你參考一下
void Uart1_Isr() interrupt 4 //串口1中斷函數
{
static unsigned RX_Count=0; //接收到的字節數
if(TI) //發送中斷
{
TI=0;
busy=0;
}
//────────────────────────────────────────────────────
if(RI) //接收中斷
{
RI=0;
if((New_Cmd)) //新命令
{
New_Cmd=0; //新命令標志位清除
TR0 = 1; //接收到串口信號后,定時器0開始計時
RX_Count=0; //重新指定指針位置
Buffer0.cnt_Byte=0; //接收字節數清除
}
Buffer0.buf_uart[RX_Count]=SBUF; //把接收到的數據保存
RX_Count++; //數組指針加1
Buffer0.cnt_Byte++; //接收字節數+1
T0_1ms_uart=0; //接收完一個字節數據,重新計時
}
//───────────────────────────────────────────────────────────
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲精品久久久一区二区三区
|
免费在线成人
|
久久一二区
|
国产特黄一级
|
毛片软件
|
国产精品久久久久久久久久久久久
|
中文字幕日韩一区
|
日韩在线一区二区
|
国产精品海角社区在线观看
|
欧美成人一区二区三区片免费
|
日韩视频一区
|
久久精品国产a三级三级三级
|
欧美在线a
|
超碰免费在线观看
|
妞干网av
|
国产一区欧美
|
超碰在线免费av
|
亚洲综合成人网
|
国产偷自视频区视频
|
你懂的免费在线
|
国产精品一二区
|
日皮视频免费
|
欧美精品一二三
|
亚洲国产成人精品女人久久久
|
香蕉视频在线播放
|
2018中文字幕第一页
|
成人精品免费视频
|
国产一级毛片视频
|
日韩av手机在线观看
|
91精品国产欧美一区二区
|
91精品一区二区三区久久久久
|
久草综合在线视频
|
久久亚
|
国产99久久精品一区二区永久免费
|
欧美一区二区三区视频在线观看
|
亚洲精品丝袜日韩
|
国产精品久久
|
国产精品久久久久久久久久免费看
|
黄色片网站国产
|
欧美黑人一级爽快片淫片高清
|
成人免费视频观看
|