proteus仿真stm32控制呼吸灯
- 所用工具:
1、proteus STM32F103C6xx
2、STM32CubeMx软件
3、IDE: STM32CubIDE
4、STM32F1xx HAL库
- 设计思路:
采用stm32f103C6为主控芯片,及led-green;时钟源为晶振为8M的系统内部时钟;使用的定时器为TIM1,并且使用PWM Generation CH1为PWM输出;
什么是PWM
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
PWM工作原理
SMT32F1系列共有8个定时器:
高级定时器(TIM1、TIM8);通用定时器(TIM2、TIM3、TIM4、TIM5);基本定时器(TIM6、TIM7)。
STM32的每个通用定时器都有独立的4个通道可以用来作为:输入捕获、输出比较、PWM输出、单脉冲模式输出等。
STM32的定时器除了TIM6和TIM7(基本定时器)之外,其他的定时器都可以产生PWM输出。其中,高级定时器TIM1、TIM8可以同时产生7路PWM输出.
原理:
向上计数模式
PWM频率:
Fpwm =Tclk / ((arr+1)*(psc+1))(单位:Hz)
Tclk 是时钟频率
arr 是计数器值
psc 是预分频值
占空比:
duty circle = ccrx / arr(单位:%)
ccrx 用户设定值
以上 Tclk、 arr、 psc、 ccrx各值用户均可自己设置。
STM32CubeMx配置
打开STM32CubeMx
选择TIM1、时钟源选择内部时钟,通道1选择PWM Generation CH1,STM32内部时钟为8MHZ
同时将proteus中STM32时钟设为8M
将psc设置8-1,arr设置为500-1,此时PWM频率为8M/8/500=2000HZ
proteus仿真电路设计
软件设计
int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM1_Init(); /* USER CODE BEGIN 2 */ uint16_t pwm=0; //占空比 HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); //开启PWM通道1 // EN1_SET; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { while (pwm< 499) { pwm++; __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_1, pwm); //通过修改比较值来改变占空比 // TIM3->CCR1 = pwmVal; 可通过操作寄存器来控制CCR1的值
HAL_Delay(1);
}
while (pwm) { pwm--; __HAL_TIM_SetCompare(&htim1, TIM_CHANNEL_1, pwm); //通过修改比较值来改变占空比 // TIM3->CCR1 = pwmVal; 可通过操作寄存器来控制CCR1的值 HAL_Delay(1); } HAL_Delay(200); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */
效果
可实现LED呼吸灯效果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」