本帖最后由 18323054303 于 2017-4-18 21:49 编辑
RT,作为一个脑残穷学生,省吃俭用买了块40的板子学stm32,例程看的费劲就再省吃俭用买了一本原子教你玩stm32,看了两天才发现书是讲的10的板子的。。。都是泪。。。
今天的问题有点多,希望有耐心的大神解答一下。。。
1.例程上,HCLK不分频为什么配置是RCC->CFGR=|0<<4,手册上说7-4位0xxx才是系统时钟不分频,我觉得应该是是RCC->CFGR=&0<<7或者是RCC->CFGR=&~(1<<7)啊,实际上我也没看懂RCC->CFGR=|0<<4是在做什么,和0位或不是等于什么都不做么2.flash寄存器在时钟设置里是干嘛用的?10的教程里面好像没有这东西,手册上说,用于设置,访问控制寄存器用于使能/关闭加速功能, 如果40的板子也不设置这个东西,那会不会有影响?3.RCC->CFGR寄存器的1-0位系统时钟切换时,00-10分别是HSI,HSE和PLL,11的“不允许”是什么意思?不要系统时钟了?还是说不允许系统时钟切换?如果是不允许系统时钟切换的话,那默认系统时钟是哪个?4.如果不分频,HSE,HSI,LSE,LSI的默认值是多少?根据例程计算40板子HSE的值是56MHz,这个值是固定的还是根据外设不同会变?还是说只要不旁路外部时钟,HSE的值就永远是56MHz?5.例程中用的时钟是HSE,为什么在时钟初始化的时候啥事不管,上来就先把HSI使能了?6.SCB->VTOR寄存器的基址和偏移量是怎么设定的?例程上设置基址是从29位或者第0位开始的时候偏移量是0,那么如果从28位开始,偏移量是多少呢? 例程上#ifdef VECT_TAB_RAM MY_NVIC_SetVectorTable(1<<29,0x0);#else MY_NVIC_SetVectorTable(0,0x0);#endif 到底是在做什么?我查了一下SCB->VTOR,数据放在的是29-8位,那基址设为0是什么意思?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>