OpenEdv-开源电子网

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

PA1口的使用

[复制链接]

14

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2013-7-14
在线时间
0 小时
发表于 2013-7-15 17:18:29 | 显示全部楼层 |阅读模式
 A1是adc1数据输入口,该口外接一个按键,adc初始化该口为输入,exti初始化为外部中断源,双重初始化该口,而且都能使用,这合理吗,求解释
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-15 20:51:41 | 显示全部楼层
回复【楼主位】zbystm32:
---------------------------------
非常不合理。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2013-7-14
在线时间
0 小时
 楼主| 发表于 2013-7-15 21:20:14 | 显示全部楼层
定时器的pwm模式下,中断为什么还是溢出中断
void TIM3_IRQHandler(void)
{              
if(TIM3->SR&0X0001)//溢出中断
{
LED1=!LED1;                    
}    
TIM3->SR&=~(1<<0);//清除中断标志位      
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-15 21:37:06 | 显示全部楼层
回复【3楼】zbystm32:
---------------------------------
也可以是溢出中断啊。
另外,我们的PWM例程没用到中断。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2013-7-14
在线时间
0 小时
 楼主| 发表于 2013-7-15 21:47:08 | 显示全部楼层
#include "timer.h"
#include "led.h"
//////////////////////////////////////////////////////////////////////////////////  
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK战舰STM32开发板
//定时器 驱动代码    
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2012/9/4
//版本:V1.1
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
//All rights reserved   
//********************************************************************************
//V1.1 20120904
//1,增加TIM3_PWM_Init函数。
//2,增加LED0_PWM_VAL宏定义,控制TIM3_CH2脉宽   
//////////////////////////////////////////////////////////////////////////////////  
     

//定时器3中断服务程序  
void TIM3_IRQHandler(void)
{              
if(TIM3->SR&0X0001)//溢出中断
{
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->SC=psc;   //预分频器7200,得到10Khz的计数时钟   
TIM3->DIER|=1<<0;   //允许更新中断   
TIM3->CR1|=0x01;    //使能定时器3
   MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2  
}
//TIM3 WM部分初始化 
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM3_PWM_Init(u16 arr,u16 psc)
{    
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1;  //TIM3时钟使能    
RCC->APB2ENR|=1<<3;     //使能PORTB时钟
GPIOB->CRL&=0XFF0FFFFF; //PB5输出
GPIOB->CRL|=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 WM2模式  
TIM3->CCMR1|=1<<11;  //CH2预装载使能    
TIM3->CCER|=1<<4;    //OC2 输出使能    
TIM3->CR1=0x0080;    //ARPE使能 
TIM3->CR1|=0x01;     //使能定时器3    
}
回复 支持 反对

使用道具 举报

14

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2013-7-14
在线时间
0 小时
 楼主| 发表于 2013-7-15 21:49:59 | 显示全部楼层
这个溢出来自哪里,一样的溢出标志位怎么分得清是pwm还是cnt
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-15 22:02:45 | 显示全部楼层
回复【6楼】zbystm32:
---------------------------------
看代码得好好屡屡。
我们的PWM初始化程序,连中断分组都没设置,你觉得可能用了中断么?
再好好看看你的前一个例程,也就是我们开发板PWM实验的前一个实验,是不是定时器中断,那么你再结合一下我们例程的特点,就像堆金字塔一样,早先的代码,都会被保留下来,无论用到与否,那么你应该可以做出一个比较明确的判断。

剩下的,溢出中断,可以在PWM的时候,设置ARR的值为最大值0XFFFF,那么超过就会产生溢出中断了。
不过PWM一般用的应该是更新中断,这样不论ARR设置多少,只要更新就会中断。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2013-7-14
在线时间
0 小时
 楼主| 发表于 2013-7-15 22:11:14 | 显示全部楼层
感恩原子哥!!!
回复 支持 反对

使用道具 举报

14

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2013-7-14
在线时间
0 小时
 楼主| 发表于 2013-7-16 07:52:39 | 显示全部楼层
又看了看,才明白pwm是由i/o输出的,耽误大哥时间了,我是小白,我为自己一袋盐
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 10:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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