欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1725|回復: 4
打印 上一主題 下一主題
收起左側

GPS單片機每次發送少一到兩個字符怎么回事

[復制鏈接]
回帖獎勵 5 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次(中獎概率 10%)
跳轉到指定樓層
樓主
ID:268520 發表于 2018-1-5 21:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
nclude<reg52.h>
#include<string.h>
unsigned char cntRxd = 1;
unsigned char cmdArrived = 0;
unsigned char bufRxd[69]; //串口接收緩沖區
void ConfigUART(unsigned int baud)//串口配置函數,baud為波特率
{
SCON = 0x50;//配置串口為模式1
TMOD &= 0x0F;//清零T1的控制位
TMOD |= 0x20;//配置T1為模式2
TH1 = 256 - (11059200/12/32) / baud;//計算T1重載值
TL1 = TH1;//初值等于重載值
ET1 = 0;//禁止T1中斷
ES= 1;//使能串口中斷
TR1 = 1;//啟動T1
}
void UartWrite(unsigned char *buf) //串口發送函數
{
unsigned char i;
for(i = 0;i<cntRxd;i++)//發送數據
{
SBUF = *buf;
buf++;
}
}
void main ()
{
EA = 1;//開總中斷
ConfigUART(4800); //配置波特率為4800
while(1)
{
if (cmdArrived) //有命令到達時,讀取處理該命令
{
cmdArrived = 0;
UartWrite(bufRxd);
cntRxd = 0;
}
}
}
void InterruptUART() interrupt 4//UART中斷服務函數
{
if(RI)
{
bufRxd[cntRxd++] = SBUF; //保存接收字節
while(!RI);
RI = 0;//手動清零接收中斷標志位
cmdArrived = 1;
}
if (TI)//字節發送完畢
{
TI = 0;
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:97438 發表于 2018-1-5 21:29 來自觸屏版 | 只看該作者
你這程序能實現功能嗎?每次接受到一個數值,標志位置1了,就跑去發送了。
回復

使用道具 舉報

板凳
ID:272378 發表于 2018-1-6 16:46 | 只看該作者
標志位置1了,就跑去發送了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:272479 發表于 2018-1-6 19:57 | 只看該作者
你應該設置一個判斷,判斷你要串口讀出來的字符都讀出來后,然后標志位置1.

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

5#
ID:272479 發表于 2018-1-6 19:58 | 只看該作者
你應該設置一個判斷,判斷你的所有字符都發送完畢后,再將標志位置1,其實是否可以不加標志位呢!?

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表