我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 701|回复: 0

STM32F103

[复制链接]

该用户从未签到

34

主题

12

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2020-11-27 08:35:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
#include "timer.h"
#include "led.h"
#include "sys.h"
#include "usart.h"        
#include "delay.h"   
#include "led.h"   
#include "timer.h"

int main(void)
{            
     u16 led0pwmval=0;   
    u8 dir=1;   
    Stm32_Clock_Init(9); //系统时钟设置
    delay_init(72);         //延时初始化
    uart_init(72,9600);  //串口初始化
    LED_Init();               //初始化与LED连接的硬件接口
    TIM1_PWM_Init(899,0);//不分频。PWM频率=72000/(899+1)=80Khz
       while(1)
    {
         delay_ms(10);     
        if(dir)led0pwmval++;
        else led0pwmval--;     
         if(led0pwmval>300)dir=0;
        if(led0pwmval==0)dir=1;                           
        LED0_PWM_VAL=led0pwmval;      
    }
}
//增加TIM1_CH1,PWM输出设置相关内容
//////////////////////////////////////////////////////////////////////////////////      

//定时器3中断服务程序     
void TIM3_IRQHandler(void)
{                                       
    if(TIM3->SR&0X0001)//溢出中断
    {
        LED1=!LED1;                                                                    
    }                  
    TIM3->SR&=~(1<<0);//清除中断标志位         
}
//通用定时器中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc)
{
    RCC->APB1ENR|=1<<1;    //TIM3时钟使能   
     TIM3->ARR=arr;      //设定计数器自动重装值
    TIM3-&gtSC=psc;      //预分频器设置
    TIM3->DIER|=1<<0;   //允许更新中断               
    TIM3->CR1|=0x01;    //使能定时器3
      MY_NVIC_Init(1,3,TIM3_IRQn,2);//抢占1,子优先级3,组2                                    
}
//TIM1_CH1 PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM1_PWM_Init(u16 arr,u16 psc)
{                              
    //此部分需手动修改IO口设置
    RCC->APB2ENR|=1<<11;     //TIM1时钟使能   
    GPIOA->CRH&=0XFFFFFFF0;    //PA8清除之前的设置
    GPIOA->CRH|=0X0000000B;    //复用功能输出
   
    TIM1->ARR=arr;            //设定计数器自动重装值
    TIM1-&gtSC=psc;            //预分频器设置
  
    TIM1->CCMR1|=7<<4;      //CH1 PWM2模式         
    TIM1->CCMR1|=1<<3;         //CH1预装载使能     
     TIM1->CCER|=1<<0;       //OC1 输出使能      
    TIM1->BDTR|=1<<15;       //MOE 主输出使能      

    TIM1->CR1=0x0080;       //ARPE使能
    TIM1->CR1|=0x01;        //使能定时器1                                          
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

公告:服务器刚移机,
大家请不要下载东西。
会下载失败


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表