赞
踩
本文介绍基于Proteus软件仿真实现STM32F103R6单片机输出PWM波形(其他子型号单片机类似)
Proteus软件选用Proteus8.8版本及以上
CSDN下载:
https://download.csdn.net/download/u011816009/85149272
百度网盘下载:
链接:https://pan.baidu.com/s/1ORu1_6OnpYKc70L02IYk2Q
提取码:1m2f
Keil代码与Proteus8.8仿真下载(注意要是用Proteus8.8这个版本,其他版本可能会出现异常):
#include "pbdata.h" u16 fre; void RCC_Configuration(void); void GPIO_Configuration(void); void TIM3_Configuration(); void Delay (uint32_t nCount) { for(; nCount != 0; nCount--); } int main(void) { u16 arr=42000; u16 led_dt = arr/2; RCC_Configuration(); //系统时钟初始化 GPIO_Configuration();//端口初始化 TIM3_Configuration(arr);//定时器和pwm配置 while(1) { TIM_SetCompare2(TIM3,led_dt); //用的是TIM3的通道2,输出PWM 送到相应的寄存器中 //满占空比为900 GPIO_SetBits(GPIOB,GPIO_Pin_5); //LED 发光 Delay(0x2ffff); GPIO_ResetBits(GPIOB,GPIO_Pin_5);//LED 熄灭 Delay(0x2ffff); } } void RCC_Configuration(void) { SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//这个是必须的,仿真软件必须的 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//端口复用,一定在APB2的时钟线 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); }
GIF仿真动图
CSDN下载:
https://download.csdn.net/download/u011816009/85149272
百度网盘下载:
链接:https://pan.baidu.com/s/1ORu1_6OnpYKc70L02IYk2Q
提取码:1m2f
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。