初级会员

- 积分
- 183
- 金钱
- 183
- 注册时间
- 2017-12-3
- 在线时间
- 32 小时
|
发表于 2018-6-20 16:27:28
|
显示全部楼层
中断里判断接收是否接收
swich(字符串)
case:“Y0 ON”
*******
beack;
case:“Y1 ON”
*******
beack;
例子:
u8 usart1_rec_buff[200]; //接收字符串缓冲区
u8 usart1_rec_len = 0; //接收字符长度
u8 usart1_rec_flag = 0; //接收完成标志
void USART1_IRQHandler(void)
{
u8 data; //存储单个字符
if(USART1->SR & 1 << 5) //接收中断
{
data = USART1->DR; //读数据,并且清标志。
//USART1->DR = data;
if(data != '\r' && data != '\n')
{
usart1_rec_buff[usart1_rec_len++] = data; //存储数据
}
if(data == '\n')
{
usart1_rec_buff[usart1_rec_len] = '\0'; //添加结束符
usart1_rec_len = 0; //字符长度置0
TIM7_state = 1; //启动扫描
// printf("ok\n");
}
// USART1->DR = data; //回显内容
}
// if(USART1->SR & 1 << 6) //发送中断
// {
// USART1->SR &= ~(1 << 6); //清标志
// LED2 = !LED2;
// }
}
/****中断功能****/
if(strcmp((char*)usart1_rec_buff, "page1") == 0)
{
page = 0;
//show_time(); //时间及温湿度
}
else if(strcmp((char*)usart1_rec_buff, "page2") == 0)
{
page = 1;
//show_HR(); //心率测量界面
} |
|