#define MaxLen 255 //最大长度
u16 RecTimNum=0; //接收计时
FunctionalState RecStart=DISABLE; //接收启动标志位
FunctionalState RecFinish=DISABLE; //接收完成标志位
u8 ReceiveBuf[MaxLen]={0}; //接收缓冲区
u8 BufLen=0; //接收长度
/* 超时接收完成函数 定时器中断1ms进入一次 */
void Rec_TimOut(void)
{
if(RecStart==ENABLE)
{
if(++RecTimNum==5) //5ms没有接收到数据默认接收完成
{
RecTimNum=0; //计时清零
RecStart=DISABLE;
RecFinish=ENABLE; //接收完成标志位置位
//接收完成处理函数
Uart_Send(ReceiveBuf,BufLen); //本段为将接收到的数据重新发送回串口。回环测试
BufLen=0; //长度清零
RecFinish=DISABLE; //接受完成
}
}
}
/* UART接收函数 放在串口接收中断*/
void Uart_Receive()
{
u8 temp;
if(RecStart==DISABLE) //第一次进入串口中断
{
RecStart=ENABLE; //接收启动标志
}
RecTimNum=0; //每次重新进入串口接收中断时,清零计数,表示还未接收完成
temp = UART_ReceiveData8(); //从缓冲区取出数据
ReceiveBuf[BufLen++]=temp; //接收缓冲区
}
我要赚赏金打赏帖 |
|
|---|---|
| bsp_log:RTT分级日志封装被打赏¥16元 | |
| J-LinkRTT常用API函数讲解被打赏¥14元 | |
| 【S32K3学习整理】S32K388 四核启动被打赏¥23元 | |
| 【S32K3学习整理】Lockstep和Decoupled 模式被打赏¥28元 | |
| 嵌入式芯片调试神器-J-LinkRTT被打赏¥21元 | |
| 人体红外PIR感应传感器使用(ESP32S3)被打赏¥26元 | |
| 一种有效完成脚本程序测试的方法被打赏¥28元 | |
| WorkBuddy搭配SolidCraft给开发板做两件式外壳被打赏¥33元 | |
| 开箱一块k230被打赏¥33元 | |
| 【瑞萨RA8D1测评】RA8D1+lwIP网络验证与TCPOTA的实验记录被打赏¥33元 | |
我要赚赏金
