【STM32标准库】无线调参 自定义协议

[复制链接]

1

主题

1

帖子

114

积分

二氧化硅

Rank: 2

积分
114
查看: 135回复: 2 发表于 2022-11-2 10:56:24   只看该作者
中断服务函数
extern float Buffer_P,Buffer_I,Buffer_D,Buffer_aim;
void USART1_IRQHandler(void)
{
       
        static uint8_t id_arr_temp[28];
        static uint8_t id_arr[28];
        static uint8_t i=0;
        static uint8_t ReBuff;
        if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
        {               
                ReBuff = USART_ReceiveData(USART1);
                if(ReBuff=='[')  i=0;
                id_arr_temp[i]=ReBuff;
                i++;
                if(i==10&&id_arr_temp[1]=='A'&&id_arr_temp[9]==']')
                {       
                        for(i=0;i<9;i++)
                                id_arr[i]=id_arr_temp[i]-'0';
                        if(i==9)
                        {
                                Buffer_aim=id_arr[3]*100+id_arr[4]*10+id_arr[5]+id_arr[7]*0.1+id_arr[8]*0.01;
                                Angle.aim=Buffer_aim;
                                //printf("%.2f\n",Buffer_aim);
                        }
                }
                else if(i==28&&id_arr_temp[1]=='P'&&id_arr_temp[27]==']')
                {       
                        for(i=0;i<28;i++)
                                id_arr[i]=id_arr_temp[i]-'0';
                        if(i==28)
                        {
                                Buffer_P=id_arr[3]*100+id_arr[4]*10+id_arr[5]+id_arr[7]*0.1+id_arr[8]*0.01;
                                Buffer_I=id_arr[12]*100+id_arr[13]*10+id_arr[14]+id_arr[16]*0.1+id_arr[17]*0.01;
                                Buffer_D=id_arr[21]*100+id_arr[22]*10+id_arr[23]+id_arr[25]*0.1+id_arr[26]*0.01;
                                //printf("%.2f,%.2f,%.2f\n",Buffer_P,Buffer_I,Buffer_D);
                                Speed.Kp=Buffer_P;
                                Speed.Ki=Buffer_I;
                                Speed.Kd=Buffer_D;
                        }
                }
               
        }
}

串口发送
[P=900.00 I=009.00 D=000.00]
即可改变PID的值

41

主题

157

帖子

326

积分

二氧化硅

Rank: 2

积分
326
发表于 2022-11-10 08:51:27   只看该作者
哇!谢谢大佬分享

150

主题

440

帖子

1804

积分

审核员

Rank: 9Rank: 9Rank: 9

积分
1804
发表于 2022-11-10 08:52:25   只看该作者
谢谢分享
快速回复 返回顶部 返回列表