基于stm32的蓝牙控制小舵机自动关灯程序

本文适合STM32新手,分享了一个使用stm32f103c8t6的蓝牙控制舵机自动关灯程序。通过蓝牙模块(如HC08)实现舵机转动,并进入休眠模式以节省电量。程序涵盖了STM32的PWM和串口通信关键功能,实现实用的自动关灯装置。延迟函数和GPIO、PWM配置是程序核心,蓝牙模块的AT指令需依据厂家调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stm32新手看过来 分享一个基于stm32的蓝牙控制小舵机自动关灯程序

用的是stm32f103c8t6最小系统板,实现功能是蓝牙控制舵机转动,之后stm32和蓝牙模块进入休眠省电模式
这里采用了软件发送AT指令使得蓝牙模块进入休眠,需要注意的是不同厂家生产的蓝牙模块的AT指令不一样。(我用的是HC08)

这个程序很适合stm32新手练手编写,简单实用,能复习到stm32两大重要功能:脉宽调制和串口通信,另外对熟悉stm32f1系列单片机也有很大帮助

当然最重要的是实用,自己做一个关灯装置,在舍友的惊叹声中实现“魔法关灯”吧哈哈。

这个程序已经是成熟的版本了,两节南孚给蓝牙模块和stm32供电,已经使用了半个月了(之前没有加入蓝牙休眠的时候一晚上就没电了)

其中主函数如下

#include "pwm.h"
#include "system.h"
#include "SysTick.h"
#include "usart.h"

int main()
{
        SysTick_Init(72);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
        TIM2_CH1_PWM_Init(199,7199); 
        USART1_Init(9600);
        TIM_SetCompare3(TIM2,185);
        
        while(1)
        {
        sleep();

        servo_control();
        }
}

void servo_control (void)
{

if(r==0x35)
{
	if(flag==1)
	{
		TIM_SetCompare3(TIM2,170);
		delay_ms(1000);
		TIM_SetCompare3(TIM2,185);
		dela
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值