OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5391|回复: 8

求各位大神哥哥姐姐指教啊

[复制链接]

13

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-3-17
在线时间
0 小时
发表于 2014-4-21 19:32:57 | 显示全部楼层 |阅读模式
为什么LED只亮一个啊,而且亮度没有变化,求各位大神指教啊。。。
#include"sys.h"
#include"usart.h"
#include"delay.h"
#include"led.h"
#include"timer.h"
int main(void)
{
   u16 led0pwmval=0;
   u8 dir=1;
   delay_init(72);
   Stm32_Clock_Init(9);
   uart_init(72,9600);
   LED_Init();//初始化与LED连接的硬件接口
   //KEY_Init();
   BEEP_Init();
   TIM3_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;  

}
}


#include "led.h"
//PG13,14    
//LED IO初始化
void LED_Init(void)
{
RCC->APB2ENR|=1<<8;    //使能PORTG时钟    
//RCC->APB2ENR|=1<<6;    //使能PORTE时钟
   
GPIOG->CRH&=0XF00FFFFF; 
GPIOG->CRH|=0X03300000;//PG.5 推挽输出    
    GPIOG->ODR|=1<<13;      //PG.13 输出高
 
//GPIOG->CRH&=0XFF0FFFFF;
   //GPIOG->CRH|=0X00300000;//PE.5推挽输出
    GPIOG->ODR|=1<<14;      //PG.14输出高 
}



#include "timer.h"
#include "led.h"
//定时器3中断服务程序  
void TIM3_IRQHandler(void)
{          
if(TIM3->SR&0X0001)//溢出中断(TIMx->SR状态寄存器)
{
LED1=!LED1;              
}   
TIM3->SR&=~(1<<0);//清除中断标志位    
}
//通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1; //TIM3时钟使能    
  TIM3->ARR=arr;   //设定计数器自动重装值//刚好1ms (TIM3->ARR重装载寄存器)   
TIM3->SC=psc;   //预分频器7200,得到10Khz的计数时钟  
TIM3->DIER|=1<<0;   //允许更新中断 (中断使能寄存器) 
TIM3->CR1|=0x01;    //使能定时器3(控制寄存器)
  MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2  
}
//TIM3 PWM部分初始化 
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM3_PWM_Init(u16 arr,u16 psc)
{  
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1; //TIM3时钟使能    
RCC->APB2ENR|=1<<8;     //使能PORTG时钟
GPIOG->CRH&=0XFF0FFFFF; //PG13输出
GPIOG->CRH|=0X00B00000; //复用功能输出    
  
RCC->APB2ENR|=1<<0;     //开启辅助时钟   
AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的[11:10]
AFIO->MAPR|=1<<11;      //部分重映像,TIM3_CH2->B5

TIM3->ARR=arr; //设定计数器自动重装值 
TIM3->SC=psc; //预分频器不分频

TIM3->CCMR1|=7<<12;   //CH2 PWM2模式 TIM3->CCMR1 捕获/比较模式寄存器
TIM3->CCMR1|=1<<11; //CH2预装载使能   
TIM3->CCER|=1<<4;   //OC2 输出使能   
TIM3->CR1=0x0080;   //ARPE使能 
TIM3->CR1|=0x01;     //使能定时器3  
}    

#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"

//V1.1 20120904
//1,增加TIM3_PWM_Init函数。
//2,增加LED0_PWM_VAL宏定义,控制TIM3_CH2脉宽  
//////////////////////////////////////////////////////////////////////////////////  


//通过改变TIM3->CCR2的值来改变占空比,从而控制LED0的亮度
#define LED0_PWM_VAL TIM3->CCR2    

void TIM3_Int_Init(u16 arr,u16 psc);
void TIM3_PWM_Init(u16 arr,u16 psc);
#endif
 



正在为生存奋斗的回族女孩。因为我有信仰,所以我相信以后的生活更加美好。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-4-21 20:13:15 | 显示全部楼层
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2014-4-21 20:20:34 | 显示全部楼层
这是直接复制原子哥的程序吗?如果是,请检查你的硬件。。。
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

26

主题

261

帖子

1

精华

高级会员

Rank: 4

积分
734
金钱
734
注册时间
2013-11-1
在线时间
28 小时
发表于 2014-4-21 20:39:51 | 显示全部楼层
这是什么意思?
回复 支持 反对

使用道具 举报

13

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-3-17
在线时间
0 小时
 楼主| 发表于 2014-4-22 08:37:13 | 显示全部楼层
回复【3楼】小温:
---------------------------------
是的,我就把我的板上的io口改了,
正在为生存奋斗的回族女孩。因为我有信仰,所以我相信以后的生活更加美好。
回复 支持 反对

使用道具 举报

13

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-3-17
在线时间
0 小时
 楼主| 发表于 2014-4-22 08:37:34 | 显示全部楼层
回复【4楼】zhao305149619:
---------------------------------
led灯的亮度不变。
正在为生存奋斗的回族女孩。因为我有信仰,所以我相信以后的生活更加美好。
回复 支持 反对

使用道具 举报

13

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2014-3-17
在线时间
0 小时
 楼主| 发表于 2014-4-22 08:38:43 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
用原子哥的程序改过io口之后灯的亮度不变。。。。求指教
正在为生存奋斗的回族女孩。因为我有信仰,所以我相信以后的生活更加美好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-4-22 19:51:53 | 显示全部楼层
TIM3没有能够重映射到PG口的选项啊!!

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

108

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2013-12-23
在线时间
2 小时
发表于 2014-4-23 11:58:34 | 显示全部楼层
回复【7楼】马小萍:
---------------------------------
这么个学习法没意思。要么直接看原子,要么自己写。
复制过来改一改,错误更多,因为根本没学懂。
只要肯努力,知识是自己的,别人拿不走
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-10 02:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表