- 收藏
- 点赞
- 分享
- 举报
通过uart串口收到从蓝牙传过来的数据,但是在stm32程序中用于判断语句的时候用不了,怎么解决?
最近在做平衡小车,用的是stm32cubeIDE进行程序编写,目前是在做蓝牙遥控部分,从手机的蓝牙串口调试助手aap上发送指令A,通过小车上的OLED可以显示接收到的指令是A,但是用于if判断语句时,执行不了里面的语句,我猜想是接收到的指令与if(uart_receive== (uint8_t*)0x5A)里我输入的指令不匹配造成的,请问一下各位大神,这个问题怎么解决呀?
下面是代码:
//usart接收中断函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if (huart->Instance == USART2)
{
HAL_UART_Receive_IT(&huart2,uart_receive,1);
RunState();
printf(“Flag_Qian= %d\r\n”,Flag_Qian);
printf(“Flag_Hou= %d\r\n”,Flag_Hou);
printf(“Flag_Left= %d\r\n”,Flag_Left);
printf(“Flag_Right= %d\r\n”,Flag_Right);
// rxCompleted=SET; //接收完成
// __HAL_UART_ENABLE_IT(huart, UART_IT_IDLE); //�?�? IDLE 中断
}
}
//执行函数
void RunState(void)
{
if (uart_receive > (uint8_t)10)
{
if(uart_receive== (uint8_t)0x5A)
Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=0;
else if(uart_receive==(uint8_t)0x41)
Flag_Qian=1,Flag_Hou=0,Flag_Left=0,Flag_Right=0;
else if(uart_receive==(uint8_t)0x45)
Flag_Qian=0,Flag_Hou=1,Flag_Left=0,Flag_Right=0;
else if(uart_receive==(uint8_t)0x42||uart_receive==(uint8_t)0x43||uart_receive==(uint8_t)0x44)
Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=1;
else if(uart_receive==(uint8_t)0x46||uart_receive==(uint8_t)0x47||uart_receive==(uint8_t)0x48) //ÓÒ
Flag_Qian=0,Flag_Hou=0,Flag_Left=1,Flag_Right=0;
else
Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=0;
}
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
-
2020-10-21 17:29:44
-
2019-04-23 15:51:27
-
2019-01-17 10:29:36
-
2020-10-21 12:00:34
-
2020-10-12 16:20:04
-
2018-12-19 14:04:12
-
2013-08-25 10:12:53
-
2020-08-23 17:19:49
-
2013-12-10 20:37:15
-
2020-03-18 09:40:37
-
2020-10-22 13:57:28
-
2016-09-18 19:26:13
-
2016-11-25 17:52:58
-
2019-11-04 13:53:28
-
2018-10-19 15:41:41
-
2020-09-01 12:01:10
-
2013-08-25 15:55:19
-
2020-11-26 15:50:54
-
2013-11-28 18:30:29
-
10hi35169dv500平台使用http协议推拉流UVC摄像头,帧率问题
-
10hi3516cv610关于YOLO优化和调优问题
-
10hi_mpi_vpss_get_chn_frame err:0xa0078016报错
-
5gk7205v200(hisi3516ev200)如何接入b656?
-
30pipe管道创建失败
-
10atc转换模型失败
-
20拍摄静止画面显示正常,拍摄运动的画面出现马赛克显示
-
100hi3516cv610 通过易百纳官方SDK中编译出的uboot env kernel,移植到自己的工程中,MPP初始化时出现内核拷贝数据到用户端时出现错误导致内核进入pain模式进而时内核重启
-
5hisi3519 gs2972 bt1120 转sdi 无法正常显示问题
-
5hisi3516cv610 + gc4336p 夜晚很模糊
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明

微信扫码分享
QQ好友