OpenEdv-开源电子网

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

希望帅哥美女们能帮忙解决下

[复制链接]

13

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2017-1-18
在线时间
9 小时
发表于 2017-5-29 15:57:16 | 显示全部楼层 |阅读模式
2金钱
void TIM3_Int_Init(u16 arr,u16 psc)
{
        RCC->APB1ENR|=1<<1;        //
        TIM3->ARR=arr;          //
        TIM3->PSC=psc;          //
        TIM3->DIER|=1<<0;   //
        TIM3->CR1|=0x01;    //
          MY_NVIC_Init(1,3,TIM3_IRQn,2);        //                 
}
像这种底层RCC->APB1ENR|=1<<1的代码怎样在keil5工程里编写?不知道思路方法,求告知方法就行,我去实现它谢谢

最佳答案

查看完整内容[请看2#楼]

首先你得明白要想一个外设工作都需要写什么,比如TIM3,首先你要使能TIM3的时钟,查数据手册,发现控制是否使能TIM3时钟的寄存器是APB1ENR的第1位,该位置1就会使能TIM3时钟,设置该位时应注意不要干扰其他位,否则可能因此其他的工作不正常,只设置该位需要进行按位或的操作,1
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2017-2-9
在线时间
52 小时
发表于 2017-5-29 15:57:17 | 显示全部楼层
本帖最后由 幼儿园扛把子 于 2017-5-29 16:33 编辑

首先你得明白要想一个外设工作都需要写什么,比如TIM3,首先你要使能TIM3的时钟,查数据手册,发现控制是否使能TIM3时钟的寄存器是APB1ENR的第1位,该位置1就会使能TIM3时钟,设置该位时应注意不要干扰其他位,否则可能因此其他的工作不正常,只设置该位需要进行按位或的操作,1<<1指将二进制的1向左移了1位,这样就会出现00000000000000000000000000000010,位或赋值后就只更改了第1位,其他保持原状态,这样就成功使能了TIM3时钟,然后进行TIM3工作方式的设置,ARR寄存器是设置自动重载值的,PSC是设置预分频值得,后边的DIER和CR1设置也和前边使能时钟一样,分别控制中断使能和定时器开启。总之你要写这玩意首先要清楚,任何硬件工作前都需要做什么,就比如你要开车去某个地方,首先你要保证这车有油,硬件也是,你不能说时钟还没使能呢,我就用它了,至于每个硬件外设具体怎么初始化,请参考数据手册
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 09:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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