OpenEdv-开源电子网

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

关于一个GPIO口映射问题

[复制链接]

6

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-8-8
在线时间
0 小时
发表于 2013-8-17 15:04:24 | 显示全部楼层 |阅读模式

 #include"time.h"

 void PWM2_Init(u16 arr,u16 psc)
 {
   RCC->APB1ENR|=1<<0; //(注意:这里没有使能PORTA时钟,而PORTA在void LED_Init(void)
   //中虽然已经使能过但这里没有加入LED.h这个头文件,那么为何不用再使能PORTA的时钟 ?)

   GPIOA->CRL&=0XFFFFFFF0;  //PA1输出
   GPIOA->CRL|=0X000000B0; //复用功能输出   
   GPIOA->ODR|=1<<1;  //PA1上拉
    
   TIM3->ARR=arr;   //设定计数器自动重装值
   TIM3->SC=psc;  //预分频器不分频       

   TIM2->CCMR1|=7<<12;  //选择PWM模式2
   TIM2->CCMR1|=1<<11;  //使能预装载寄存器
   TIM2->CCER|=1<<4;      //设置极性并输出时能
   TIM2->CR1|=1<<7;      //使能自动装载的预分频寄存器
   TIM2->CR1|=1<<0;      //使能定时器
 }
 这里没有使能PORTA时钟,而PORTA在void LED_Init(void)中虽然已经使能过但这里没有加入LED.h这个头文件,那么为何不用再使能PORTA的时钟 ?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-8-17 16:56:30 | 显示全部楼层
GPIOA一开始使能了,后面就不用使能。
一直努力就很好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-17 16:56:55 | 显示全部楼层
你直接软件仿真,运行到你的pwm2_init函数,看看寄存器状态,就知道GPIOA有没有使能。
然后再从MAIN函数的最开始看代码,一步步跟踪,看看是在哪里使能的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-14 23:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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