寄存器的宽度

2019-07-21 03:26发布

void TIM5_CH1_Cap_Init(u32 arr,u16 psc)
{
RCC->APB1ENR|=1<<3; //TIM5 时钟使能
RCC->AHB1ENR|=1<<0; //使能 PORTA 时钟
GPIO_Set(GPIOA,PIN0,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,
GPIO_PUPD_PD);//复用功能,下拉
GPIO_AF_Set(GPIOA,0,2); //PA0,AF2
TIM5->ARR=arr; //设定计数器自动重装值




TIM5_CH1_Cap_Init(0XFFFFFFFF,84-1); //以 1Mhz 的频率计数

arr 寄存器只有16位,为什么可以赋值0XFFFFFFFF


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 08:32
 精彩回答 2  元偷偷看……
xuande
2楼-- · 2019-07-21 11:01

你说的没错,人家写的也没错。
高位自动就无视了。


brucewoo
3楼-- · 2019-07-21 14:14
一个寄存器是32bit的,实际上只有低16bit有效,所以赋值时高16bit是不起作用的。
d1z1y2
4楼-- · 2019-07-21 16:08
进入TIM5_CH1_Cap_Init看一下,应该会转换的

一周热门 更多>