博士
最后登录1970-1-1
在线时间 小时
注册时间2014-12-16
|
发表于 2016-3-21 18:55:38
|
显示全部楼层
本帖最后由 wqy_1000 于 2016-3-21 18:57 编辑
USART字符串命令接收与响应
USART1中断服务函数( void USART1_IRQHandler(void) )的应用.
通过串口助手向stm32 USART1串口发送消息,USART1_IRQHandler函数中定义了消息的起止符,获取输入的消息内容。
#define CMD_SIZE 256
char cmd[CMD_SIZE]; //存放收到的消息字符串
int cmd_point=0; //消息字符下标
void USART1_IRQHandler(void)
{
u8 res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
{
res=USART_ReceiveData(USART1); //读取接收到的数据
if(res==’>’)
{
cmd_point=0;
memset(cmd,0,CMD_SIZE); //清除
}
else{
cmd_point++;
if(res==0x0d)
{ //结束附加位 回车
USART1_printf(“cmd:%s \n\r “,cmd);
cmd_point=0;
}
else{
cmd[cmd_point-1]=res;
}
}
}
}
|
|