▬▬▬▬▬▶蓝牙控制灯实验◀▬▬▬▬▬
⚔️硬件模块
STM32核心板
USB转TTL模块一个
手动焊接LED灯两个
不会焊接用杜邦线接也一样
⚔️理论支持
1.串口通信(最常用且最基础的通讯,这里不展开)
2.PWM脉宽调制
脉冲宽度调制脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
⚔️程序思路
开启串口接收中断,变量保存接受到的数据,数据定义标志位,主函数switch函数走不同的结果
⚔️主函数代码
本项目使用的串口测试,如需用蓝牙测试,只需要把rx,tx脚连到对应的蓝牙引脚即可
可用手机应用商店的APP下载测试
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
TIM3_PWM_Init(899,0);
TIM_SetCompare2(TIM3,1000);
LED_Init();
while(1)
{
switch(flag)
{
case 0:
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
printf("off\n");
break ;
case 1:
GPIO_SetBits(GPIOA,GPIO_Pin_8);
printf("on\n");
break ;
case 2:
TIM_SetCompare2(TIM3,1000);
printf("亮度1\n");
break ;
case 4:
TIM_SetCompare2(TIM3,800);
printf("亮度2\n");
break;
case 5:
TIM_SetCompare2(TIM3,300);
printf("亮度3\n");
break;
}
}
}
▬▬▬▬▬▶点击获取程序源码◀▬▬▬▬▬