STM32F407系统时钟配置是否添加FPU功能
来源:互联网 发布:淘宝卖家参加聚划算 编辑:程序博客网 时间:2024/05/21 04:24
Cortex-M4的指令集分两部分,一部分是在M3的指令集外增加了一些扩展功能。另一部就是用于FPU单元的单精度浮点运算指令。这部分指令都是用V-开头的汇编指令,仅在FPU功能被使能时使用。
需要注意的是FPU单元是指的芯片上的一个独立于CPU处理的浮点运算单元,整个单元在大多数厂家的芯片中都是可以被使能和关闭的。相对于芯片,编译器也设置了相应的FPU功能开启/关闭的选项,在编译时需要告诉编译器是否开启FPU功能。编译器一旦开启FPU功能,在处理单精度浮点运算的语句时就会用带V-开头的汇编指令进行编译。如果编译器使能了FPU功能,而芯片未开启FPU单元,程序运行到浮点语句时就会出现异常。相反,如果编译器未使能FPU功能,芯片即使开启了FPU单元,程序还是会按照未使能FPU的代码进行处理。
所以:在配置系统时钟时,一定先看下咱们Keil软件是否已经配置使用FOU功能:如图1:
那么:我们在系统时钟初始化时,需要添加SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));
如果没有配置:如图2:
就不需要配置上述语句。
使用配置代码如下:
//系统时钟初始化/*
HSE(25M) -- M(25) -- PLL(vco)(1M) -- *N(336)(336M) -- /P(2) -- PLLCLK(168M)
-- SYSCLK(168M) -- AHB(1)(168M) -- APB1(4) -- 42M
APB2(2) -- 84M
*/
void SystemInit1(void)
{
// SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));
//1.打开HSE和HSI(备用)
RCC->CR |= (1<<16);
//2.等待HSE开启稳定
while((RCC->CR &(1<<17))==0);
//3.HSE作为PLL时钟输入源
RCC->PLLCFGR = 0;
RCC->PLLCFGR |= (1<<22);
//4.M分频 25分频
RCC->PLLCFGR |= (25UL<<0);
//5.PLL倍频 N倍频
RCC->PLLCFGR |= (336UL<<6);
//6.VCO分频 P分频(PLLCLK) == 2
RCC->PLLCFGR &= ~(0x3<<16);
//7.VCO分频 Q分频(PLL48CK) == 7
RCC->PLLCFGR |= (7UL<<24);
//8.启动PLL
RCC->CR |= (1<<24);
//9.等待PLL时钟稳定
while((RCC->CR &(1<<25))==0);
RCC->CFGR = 0;
//11.配置AHB时钟 -- 不分频
RCC->CFGR &= ~(0xf<<4);
//12.APB1 APB2时钟
RCC->CFGR |= (5UL<<10);//APB1 -- 42MHz
RCC->CFGR |= (4UL<<13);//PAB2 -- 84MHz
//13.FLASH接口与CPU时钟对应
FLASH->ACR = 0;
FLASH->ACR |= (5UL<<0); //周期为5
FLASH->ACR |= (1<<8)|(1<<9)|(1<<10);
//10.配置SYSCLK为PLLCLK
RCC->CFGR |= (2UL<<0); //最后把PLLCLK配置为SYSCLK,否则程序发生紊乱
}
阅读全文
0 0
- STM32F407系统时钟配置是否添加FPU功能
- STM32F407系统时钟配置
- STM32f407系统定时器时钟配置、计算
- STM32F407时钟配置
- STM32F407时钟配置
- stm32f407开发板的时钟配置问题
- stm32f407开发板的时钟配置问题
- STM32F407的时钟配置(system_config.c浅见)
- STM32F407学习之时钟
- STM32F407时钟树
- stm32F407时钟树
- MQX中使能FPU功能
- C8051F340系统时钟配置
- 系统时钟的配置
- Wince系统时钟配置
- STM32系统时钟配置
- STM32系统时钟配置
- STM32F103系统时钟配置
- Spring boot之读取自定义配置文件
- vue学习指南3
- 每日一题——删除无头链表的非尾节点、逆向打印单链表
- 精华【分布式微服务云架构dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!
- js技术--cookie基础(封装cookie、使用cookie记录上一次用户登录名)
- STM32F407系统时钟配置是否添加FPU功能
- 获取wsdl接口账号密码限制读取的
- 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
- webpack + react + redux + es6 开发组件化前端项目
- μC/OS Ⅱ之任务就绪表的操作_2012.5.31
- 腾讯2017秋招笔试编程题--素数对
- jsp中弹出窗口显示下拉框,将下拉框的值传入到另外一个页面
- Lombok 安装、入门
- 个人总结 javaIO流