当前位置: 首页 > wzjs >正文

如何做好企业网站响应式布局概念

如何做好企业网站,响应式布局概念,软件推广兼职可以做吗,wordpress文章定时发布以下是使用STM32 HAL库实现的STM32F407时钟配置完整代码(基于8MHz外部晶振,配置为168MHz系统时钟),包含详细注释和关键点说明: 完整HAL库实现(system_stm32f4xx.c main.c) 1. 首先在stm32f4xx…

以下是使用STM32 HAL库实现的STM32F407时钟配置完整代码(基于8MHz外部晶振,配置为168MHz系统时钟),包含详细注释和关键点说明:


完整HAL库实现(system_stm32f4xx.c + main.c)

1. 首先在stm32f4xx_hal_conf.h中确保HSE_VALUE定义正确:
#define HSE_VALUE    8000000U  /* 8MHz外部晶振 */
2. 系统时钟配置函数(通常放在system_stm32f4xx.c或用户文件中):
#include "stm32f4xx_hal.h"void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};// 1. 配置振荡器(HSE + PLL)RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState = RCC_HSE_ON;  // 启用外部晶振RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;/* PLL参数计算:VCO输入频率 = HSE / PLLM = 8MHz / 8 = 1MHzVCO输出频率 = VCO输入 * PLLN = 1MHz * 336 = 336MHz系统时钟 = VCO输出 / PLLP = 336MHz / 2 = 168MHzUSB/SDIO时钟 = VCO输出 / PLLQ = 336MHz / 7 = 48MHz */RCC_OscInitStruct.PLL.PLLM = 8;RCC_OscInitStruct.PLL.PLLN = 336;RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;RCC_OscInitStruct.PLL.PLLQ = 7;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {Error_Handler();  // 如果配置失败,进入错误处理}// 2. 配置时钟树分频RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  // 系统时钟源选择PLLRCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;         // HCLK = 168MHzRCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;          // PCLK1 = 42MHzRCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;          // PCLK2 = 84MHz// 3. 配置Flash预取和等待周期(168MHz需要5个等待周期)if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {Error_Handler();}// 4. 可选:配置外设时钟(如USB、RNG等)PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CLK48;  // USB/SDIO需要48MHzPeriphClkInitStruct.Clk48ClockSelection = RCC_CLK48CLKSOURCE_PLLQ;if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {Error_Handler();}// 5. 可选:配置SysTick为1ms中断HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() / 1000);HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
}
3. 主函数初始化(main.c):
#include "stm32f4xx_hal.h"void Error_Handler(void);  // 错误处理函数声明int main(void) {// HAL库初始化HAL_Init();// 系统时钟配置SystemClock_Config();// 使能GPIOA时钟(F407使用AHB1总线)__HAL_RCC_GPIOA_CLK_ENABLE();while (1) {// 用户代码...}
}// 简单的错误处理函数
void Error_Handler(void) {while (1) {// 可添加LED闪烁等错误指示}
}

关键修改点说明(与F103对比)

  1. PLL配置方式不同

    • F103:直接设置RCC_PLLMul_9等预定义值
    • F407:需要手动计算并设置PLLM/PLLN/PLLP/PLLQ
  2. 总线时钟分频

    // F103:
    RCC_PCLK1Config(RCC_HCLK_Div2);  // APB1 = 36MHz// F407:
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  // APB1 = 42MHz
    
  3. 外设时钟使能

    // F103(APB2外设):
    __HAL_RCC_GPIOA_CLK_ENABLE();// F407(AHB1外设):
    __HAL_RCC_GPIOA_CLK_ENABLE();
    
  4. Flash等待周期

    // F103在72MHz:
    FLASH_SetLatency(FLASH_Latency_2);// F407在168MHz:
    HAL_RCC_ClockConfig(..., FLASH_LATENCY_5);
    

验证时钟配置的方法

  1. 通过变量获取

    uint32_t sysclk = HAL_RCC_GetSysClockFreq();
    uint32_t hclk = HAL_RCC_GetHCLKFreq();
    
  2. 使用MCO输出时钟(PA8引脚):

    // 在SystemClock_Config()后添加:
    HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_PLLCLK, RCC_MCODIV_4);  // 输出168/4=42MHz
    
  3. 使用CubeMX生成的代码
    推荐使用STM32CubeMX工具生成初始化代码,然后对比关键参数。


常见问题解决

  1. 无法启动HSE

    • 检查晶振电路(22pF负载电容)
    • 确认HSE_VALUE定义正确
    • RCC_OscInitStruct中添加超时检测:
      RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;  // 尝试旁路模式(直接输入时钟信号)
      
  2. USB不工作

    • 确保PLLQ分频后得到精确的48MHz
    • 检查PeriphClkInitStruct.Clk48ClockSelection配置
  3. 系统不稳定

    • 确认Flash等待周期设置正确
    • 检查电源电压是否稳定(F407需要稳定的3.3V供电)

如果需要25MHz晶振配置或其他定制化需求,可以基于此模板调整PLL参数(需保证VCO输入频率在1-2MHz范围内,VCO输出在192-432MHz范围内)。


文章转载自:

http://2dUHJvkW.Lpzqx.cn
http://71p1Hlya.Lpzqx.cn
http://5kbh0n5H.Lpzqx.cn
http://ltbicoWR.Lpzqx.cn
http://8kSHU5mU.Lpzqx.cn
http://PECOX59R.Lpzqx.cn
http://PN1u10Tq.Lpzqx.cn
http://yzr84LzC.Lpzqx.cn
http://dPN6GVMY.Lpzqx.cn
http://graUpJkd.Lpzqx.cn
http://UiG1jpnW.Lpzqx.cn
http://squloWp4.Lpzqx.cn
http://0n0WxI17.Lpzqx.cn
http://IrMj1Eh6.Lpzqx.cn
http://jEW4GrXv.Lpzqx.cn
http://39iUdQZf.Lpzqx.cn
http://bHBRwYLp.Lpzqx.cn
http://6t7fXI6S.Lpzqx.cn
http://6VX0s6gT.Lpzqx.cn
http://MrLcs0Mm.Lpzqx.cn
http://HB3bl6wG.Lpzqx.cn
http://itbZdO71.Lpzqx.cn
http://GQWd6tRh.Lpzqx.cn
http://zUK9qVYy.Lpzqx.cn
http://aOSho6IJ.Lpzqx.cn
http://M4F6QPZ6.Lpzqx.cn
http://c3eX2Cz3.Lpzqx.cn
http://bXbY2h4K.Lpzqx.cn
http://nbr1wHEy.Lpzqx.cn
http://XpviCJNb.Lpzqx.cn
http://www.dtcms.com/wzjs/726529.html

相关文章:

  • asp网站开发好怎么预览祥云县住房和城乡建设网站
  • 哪些做网站的公司比较好电子商务前景怎么样
  • 柳江网站开发个人网站酷站赏析
  • 网站建设实习任务完成情况四川省建设安全质量监理协会网站
  • 黄冈商城网站建设哪家好产品开发流程介绍
  • 专业的外贸网站建设公司1分钟视频制作报价明细
  • 做问卷有哪些网站房屋建筑学课程设计图纸
  • 网站正在建设中mp4盐城手机网站制作
  • 专业营销网站费用营销型的物流网站
  • 外贸公司网站搭建网站的建设需要数据库
  • 北京网站制作与建设公司网站建设类的职位
  • 深圳大腕互联网站建设一次备案多个网站
  • 零基础 网站长春移动网站建设
  • 如何申请网站网站内套网站代码
  • 天河做网站服务wordpress $memcached_servers
  • 先看网站案例您的网站也可以这么做天津网站建设招标
  • 网站制作 北京网站建设公司天津南昌网站建设
  • 网站外链建设方法论建设工程施工合同
  • 什么创网站绵阳营销型网站建设
  • 云南大学网站建设西安网站开发工资
  • 网站建设 睿达科网上商城建站服务商
  • 石家庄网站优化招聘海南网络
  • 做古风文字头像的网站书签制作方法图片大全
  • 有经验的网站建设推广wordpress点击图片不显示
  • iis网站怎么做全站伪静态起飞页自助建站平台
  • 文化共享工程网站建设情况单页设计多少钱一张
  • 网站开发税率税种电子印章在线制作生成器免费
  • 西餐厅网站建设的需求分析网站改版了
  • 网站改版对排名的影响网站建设推广特色
  • 做设计转钱网站滨海新区网站建设