summer~

summer~

0个粉丝

45

问答

2

专栏

40

资料

summer~  发布于  2020-10-04 14:57:32
采纳率 0%
45个问答
2778

通过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;

}

我来回答
回答1个
时间排序
认可量排序

陟劼

0个粉丝

0

问答

0

专栏

0

资料

陟劼 2020-10-04 16:24:27
认可0

0.0

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区