初级会员

- 积分
- 125
- 金钱
- 125
- 注册时间
- 2016-4-3
- 在线时间
- 37 小时
|
5金钱
u8 coin = 10;
u8 RxBuffer[64];
u8 TxCounter = 5;
u16 RxCounter = 0;
void USART1_IQ() // 串口中断处理函数
{
static u8 restr,i;
USART_ClearFlag(USART1,USART_FLAG_TC);
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET)//判断是否符合中断
{
restr=USART_ReceiveData(USART1); // 这里接收到的到底是什么数据啊
if(restr == 0x05)
{
coin = 5;
}
else
{
USART_SendData(USART1,restr);// 发送会上位机
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
}
}
}
USART_ReceiveData(USART1); 返回的到底是什么数据啊 是每次一个比特 的8位数据吗。
if(restr == 0x05)
{
这个判断一直跑不进去。用串口助手发送0x05 也没办法跑进来赋值
}
因为手上没有调试器,没办法设断点跟踪调试 到底收到的是什么。有知道的吗,怎么才通过串口收取到从电脑上用串口助手发送的完整的数据 进行判断是不是0x05。还是说中断每触发一次只有一位数据,需要吧数据放在缓冲数组,然后重组收到的数据吗?
|
最佳答案
查看完整内容[请看2#楼]
参考下这个http://www.openedv.com/forum.php?mod=viewthread&tid=67915&highlight=%B4%AE%BF%DA%BD%D3%CA%D5%CA%FD%BE%DD
|