蓝牙模块:cc2541
开发板:正点原子mini板stm32RCT6
手机app? BLE调试宝、lightblue等
整个程序通过硬石蓝牙控制f1mini开发板改编(如有侵权,联系立删)
?while (1) ? { ?? ??? ?e=Realspeed-Setspeed; ??? ? ?//开始时Realspeed=650满速 ?? ? ? ?e1+=e; ?? ??? ?PWMvalue=Kp*e+Ki*e1;? ?? ? ? //PWMvalue+=m; ? ? ? ?// e1=e; ? ?? ? /* ? if(PWMvalue>3600) ? ? ? ? ?//占空比超过55%电机才转 ?? ??? ?{ ?? ??? ?PWMvalue=3600;} ?? ??? ?if(PWMvalue<0) ?? ??? ?{PWMvalue=0;} ? */ ?? ??? ?TIM_SetTIM1Compare1(PWMvalue); ?? ??? ?printf("%0.0f ? %0.0f ? %0.0f\r\n",Setspeed,Realspeed,e); ?? ? ? ?key=KEY_Scan(0);?? ??? ??? ??? ?//得到键值 ?? ??? ?switch(key) ?? ??? ?{?? ??? ??? ??? ?? ?? ??? ??? ?case KEY0_PRES: ?? ??? ??? ??? ?Setspeed+=50; ?? ??? ??? ? if(Setspeed>650) ?? ??? ??? ? Setspeed=650; ?? ??? ??? ? ?? ??? ??? ??? ?break; ?? ??? ??? ?case KEY1_PRES: ?? ??? ??? ??? ?Setspeed-=50; ?? ??? ??? ?if(Setspeed<0) ?? ??? ??? ? Setspeed=0; ?? ??? ??? ??? ?break; ?? ??? ??? ?case WKUP_PRES:?? ??? ??? ??? ??? ? ?? ??? ??? ??? ? HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);?? ? ? ? ? ? ? ? ? ? ?HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET); ?? ??? ??? ??? ?break; ?? ??? ?}? ?? ? ?? ??? ?if(Task_Delay[0]==0) ? ?? ??? ?{ ? ? ? /*获取数据*/ ? ? ? redata = get_rebuff(&len); ? ? ? ? ? ? ? ? // ?printf("\r\n%d",redata[0]); ? ? ? ?switch(redata[0]) ? ? ? ?{ ? ? ? ? ?case 1: ? ? ? ? ? Setspeed+=50; ?? ??? ? if(Setspeed>650) ?? ??? ??? ? Setspeed=650; ? ? ? ? ?break; ? ? ? ? ?? ? ? ? ? ?case 2: ? ? ? ? ?Setspeed+=10; ?? ??? ? if(Setspeed>650) ?? ??? ??? ? Setspeed=650; ? ? ? ? ?break; ? ? ? ? ? ? ? ? ? ?case 3: ? ? ? ? ?Setspeed+=1; ?? ??? ? if(Setspeed>650) ?? ??? ??? ? Setspeed=650; ? ? ? ? ?break; ? ? ? ? ? ? ? ? ? ?case 4: ? ? ? ? ?Setspeed-=50; ?? ??? ? ?if(Setspeed<0) ?? ??? ??? ? Setspeed=0; ? ? ? ? ?break; ?? ??? ?? ?? ??? ? case 5: ?? ??? ?Setspeed-=10; ?? ??? ? if(Setspeed<0) ?? ??? ??? ? Setspeed=0; ? ? ? ? ?break; ?? ??? ?? ?? ??? ? case 6: ?? ??? ?Setspeed-=1; ?? ??? ? if(Setspeed<0) ?? ??? ??? ? Setspeed=0; ? ? ? ? ?break; ?? ??? ?? ?? ??? ? case 7: ?? ??? ?Setspeed=680; ? ? ? ? ?break; ?? ??? ? ? ?? ??? ? case 8: ?? ??? ?HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);?? ? ? ? ? ? HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET); ? ? ? ? ?break; ?? ??? ? ? ?? ??? ? case 9: ?? ??? ?HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);?? ? ? ? ? ? HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET); ?? ??? ?Setspeed=0;? ? ? ? ? ?break; ?? ??? ? ? ?? ??? ? ? ? ? ? ?}? ? ? ? ? /*处理数据后,清空接收蓝牙模块数据的缓冲区*/ ? ? ? clean_rebuff(); ? ? ? ? ? ? ? ? ? ? Task_Delay[0]=500;//此值每1ms会减1,减到0才可以重新进来这里,所以执行的周期是500ms ?? ??? ?}?? ? ? ?? ?} }
?
|