OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2854|回复: 2

stm32f103 HAL库接收非标数据

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2020-6-28
在线时间
2 小时
发表于 2020-6-28 11:08:46 | 显示全部楼层 |阅读模式
1金钱
stm32f103 HAL库接收非标数据串口会死机
串口发送十六进制数据(私有协义)如EB 01 02,可以打开GPIO,控制LED灯,
串口发送十六进制非标数据如 EB 00 02,不会打开GPIO,控制LED灯,此时正常。再发送EB 01 02,不能控制gpio,控制led.
要如何修改?原代码如下:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
        if(huart -> Instance == USART1 )
        {
                if(Rx_dat [0]== 0xeb && Rx_dat [1]== 0x01)
                {
                        v=Rx_dat [2];
                  switch ( v/1%10)
                        {
                                case 1:
                                        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_RESET);
                                        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_9,GPIO_PIN_SET);
                                  HAL_TIM_Base_Start_IT(&htim2);
                                 break;
                                case 2:
                                        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_8,GPIO_PIN_SET);
                                HAL_TIM_Base_Start_IT(&htim2);
                                break;
                                case 3:
                                        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_7,GPIO_PIN_SET);
                                HAL_TIM_Base_Start_IT(&htim2);
                                break;
                                case 4:
                                        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_6,GPIO_PIN_SET);
                                HAL_TIM_Base_Start_IT(&htim2);
                                break;
                                case 5:
                                        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);
                                HAL_TIM_Base_Start_IT(&htim2);
                                break;
                                case 6:
                                        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_RESET);
                               
                                break;
                        }
               
                        HAL_UART_Receive_IT (&huart1 ,Rx_dat ,3);

                }
               
        }


MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
       
       
        HAL_GPIO_WritePin (GPIOB,GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_RESET);
       
  HAL_UART_Receive_IT (&huart1 ,Rx_dat ,3);




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-6-29 01:25:15 | 显示全部楼层
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2020-6-29 08:47:24 | 显示全部楼层
协议没做好呗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 18:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表