小车PWM调速-串口控制
串口控制调速,即通过串口修改speed的值,
1.将上节PWM调速用到的定时器0源文件和头文件引入进来,工程文件如下
mian.c:主函数
Motor.c:小车前进、后退、左转、右转和停止的函数
Delay.c:延时函数
Timer0.c:定时器0初始化以及中断处理(PWM调速)
Uart.c:串口初始化以及中断处理(接收串口信息)
2.只需在串口中断处理函数中判断接收到的串口信号,如果是调速信号则改变speed的值即可
/**
* @brief 串口中断处理函数
* @param 无
* @retval无
*/
void Uart_Rountine() interrupt 4
{
static unsigned int i = 0;
unsigned char temp;
if(RI)
{
RI = 0;
temp = SBUF;
if(temp == 'F' || temp == 'B' || temp == 'L' || temp == 'R' || temp == 'S'||temp == 'Q'
||temp == 'S'||temp == 'M')
{
i = 0;
}
rec[i++] = temp;
//这里省略前进后退,左转右转的if语句……
//接到到串口的快速指令Quick
if(rec[0] == 'Q' && rec[1] == 'u')
{
speed = 35;
i = 0;
memset(rec,'\0',SIZE);
}
//接到到串口的中速指令Middle
if(rec[0] == 'M' && rec[1] == 'i')
{
speed = 25;
i = 0;
memset(rec,'\0',SIZE);
}
//接到到串口的慢速指令Slow
if(rec[0] == 'S' && rec[1] == 'l')
{
speed = 15;
i = 0;
memset(rec,'\0',SIZE);
}
if(i == SIZE){i = 0;}
}
}
3.串口可以调速后,接上蓝牙模块,即可通过手机蓝牙助手控制小车调速