Proteus仿真STM32F103R6输出PWM波

Proteus仿真STM32F103R6输出PWM波,第1张

(1)简介

本文介绍基于Proteus软件仿真实现STM32F103R6单片机输出PWM波形(其他子型号单片机类似)
Proteus软件选用Proteus8.8版本及以上

完整仿真文件及程序代码链接

CSDN下载:
https://download.csdn.net/download/u011816009/85149272

百度网盘下载:
链接:https://pan.baidu.com/s/1ORu1_6OnpYKc70L02IYk2Q
提取码:1m2f

(2)仿真文件(完整见文末) (3)部分示例代码(完整见文末)

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);
}
(4)仿真结果


GIF仿真动图

(5)完整仿真文件及代码下载

CSDN下载:
https://download.csdn.net/download/u011816009/85149272

百度网盘下载:
链接:https://pan.baidu.com/s/1ORu1_6OnpYKc70L02IYk2Q
提取码:1m2f

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存