初级会员

- 积分
- 113
- 金钱
- 113
- 注册时间
- 2019-11-5
- 在线时间
- 38 小时
|
先定义两个缓冲区:
uint8_t rx_dat[2];
uint8_t str_buff[2];
然后加入回调函数,主程序是空的,都在中断中处理了,我用的是HAL库开发:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
sprintf((char*)str_buff,"%s",rx_dat); //rx_dat是接收下来的信息,在此打印成字符串str_buff
HAL_UART_Transmit(&huart1,str_buff,sizeof(str_buff),1000); //先传回去,给自己看看打印对了没有
double b1=0; //定义一个b1用来存放strcmp
b1=strcmp((char*)str_buff,"ab"); //把str_buff和ab相比较,这里的ab可以自由改动。
uint8_t str_buf[64]; //先定义一个str_buf
sprintf((char *)str_buf ,"%f\r\n",b1); //把b1打印成str_buf
HAL_UART_Transmit(&huart1,str_buf,sizeof(str_buf),1000); //把str_buf传出去
HAL_UART_Receive_IT(&huart1,rx_dat,2); //重新开中断
str_buff[0] = 0x00;str_buff[1] = 0x00; //清空缓冲区str_buff准备下次匹配
}
如果能继续简化,请指教!我是新手。
|
|