初级会员

- 积分
- 84
- 金钱
- 84
- 注册时间
- 2018-8-25
- 在线时间
- 16 小时
|
2金钱
我在PC端发送一个字符‘u’,怎么让开发板接收一次后执行相应操作后就不再接收了,因为我发现开发板一直在接收‘u’,就会一直重复一个操作,怎么来控制?我自己想着是每接收一次数据后执行完相应操作就把端口数据清零,或者是利用某一状态位的改变来实现,但不知道怎么操作,看了好多代码,看的晕乎乎的 ,求给个思路指导一下,谢!
这是我主函数的代码(部分):
[mw_shl_code=applescript,true]
while(1)
{
switch(USART_ReceiveData(USART1))
{
case('u'):
TIM_SetCompare2(TIM3,5); //135°
delay_ms(1000);
TIM_SetCompare2(TIM3,10); //90°
delay_ms(1000);
break;
case('d'):
{
TIM_SetCompare2(TIM3,15); //90°
delay_ms(1000);
TIM_SetCompare2(TIM3,10); //45°
delay_ms(1000);
}
break;
default:delay_ms(10);
}
}[/mw_shl_code]
|
最佳答案
查看完整内容[请看2#楼]
请给出USART_ReceiveData函数源码,有利于分析问题。
如果使用了原子的代码,并且你只是pc端发一个'u',开发板就一直不断地接收到'u'的话,说明可能是你在接收完成之后没有清空相关的状态变量,例如USART_RX_STA。
|