欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)超時(shí)接收程序完成
[打印本頁(yè)]
作者:
bibi
時(shí)間:
2015-4-19 02:10
標(biāo)題:
單片機(jī)超時(shí)接收程序完成
超時(shí)接收完成。在一些沒(méi)有結(jié)束位和不固定長(zhǎng)度的情況下可以使用。可移植各平臺(tái)單片機(jī)。- =。~~
#define MaxLen 255 //最大長(zhǎng)度
u16 RecTimNum=0; //接收計(jì)時(shí)
FunctionalState RecStart=DISABLE; //接收啟動(dòng)標(biāo)志位
FunctionalState RecFinish=DISABLE; //接收完成標(biāo)志位
u8 ReceiveBuf[MaxLen]={0}; //接收緩沖區(qū)
u8 BufLen=0; //接收長(zhǎng)度
/* 超時(shí)接收完成函數(shù) 定時(shí)器中斷1ms進(jìn)入一次 */
void Rec_TimOut(void)
{
if(RecStart==ENABLE)
{
if(++RecTimNum==5) //5ms沒(méi)有接收到數(shù)據(jù)默認(rèn)接收完成
{
RecTimNum=0; //計(jì)時(shí)清零
RecStart=DISABLE;
RecFinish=ENABLE; //接收完成標(biāo)志位置位
//接收完成處理函數(shù)
Uart_Send(ReceiveBuf,BufLen); //本段為將接收到的數(shù)據(jù)重新發(fā)送回串口。回環(huán)測(cè)試
BufLen=0; //長(zhǎng)度清零
RecFinish=DISABLE; //接受完成
}
}
}
/* UART接收函數(shù) 放在串口接收中斷*/
void Uart_Receive()
{
u8 temp;
if(RecStart==DISABLE) //第一次進(jìn)入串口中斷
{
RecStart=ENABLE; //接收啟動(dòng)標(biāo)志
}
RecTimNum=0; //每次重新進(jìn)入串口接收中斷時(shí),清零計(jì)數(shù),表示還未接收完成
temp = UART_ReceiveData8(); //從緩沖區(qū)取出數(shù)據(jù)
ReceiveBuf[BufLen++]=temp; //接收緩沖區(qū)
}
復(fù)制代碼
測(cè)試結(jié)果如下:
作者:
1113634577
時(shí)間:
2019-1-29 13:15
串口等待時(shí)間超時(shí)程序,不錯(cuò)!加入crc更好
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1