0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CubeMX版本编译代码的教程

STM32嵌入式开发 来源:搜狐网 作者:搜狐网 2020-10-10 10:32 次阅读

简单写一下失败经历。

用的CubeMX版本是4.20.0如下图,用的Keil5编译代码,编译结果0 Error(s),0 Warning(s)。

Hex文件也可以正常下载单片机,但是LED不亮。

在CubeMX中配置了时钟,如下图。

CubeMX生成的main.c中Clock代码是这样的:

/** System Clock Configuration*/void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /**Initializes the CPU, AHB and APB busses clocks *//*其中,OscillatorType这里自动生成的代码有问题*/RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /**Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { Error_Handler(); } /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);}

问题在哪儿呢?LED挂在PC0上,时钟路线图如下。

第14行代码写成下面这样验证OK。

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;

实际上在实验中没有用到HSI,但是在自动生成的代码中把它加上了,导致单片机无法正常工作。看来排查Bug时,时钟这一块需要重点关注一下。
责任编辑人:CC

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译
    +关注

    关注

    0

    文章

    611

    浏览量

    32358
  • stm32cubemx
    +关注

    关注

    5

    文章

    260

    浏览量

    14438

原文标题:STM32CubeMX+Hal库教程-点亮Led

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MotorControl Workbench 5.4.8和哪个版本的STM32CubeMX可以配合使用?

    我的MotorControl Workbench一直不能创建代码版本是V5.4.8,cubemx版本是最新的,代码老是generation
    发表于 03-08 07:22

    使用1.9.0版本时,stm32cubemx生成ETH+LWIP代码,直接编译出错的原因?

    时,stm32cubemx生成ETH+LWIP代码,直接编译出错。使用V1.10.0版本时,ETH+LWIP代码能正常
    发表于 03-25 08:10

    使用CubeMX自动生成工程编译出错

    ,也包含进来了使用keil 或者iar结果都是一样的,以前是有 v4.16是没有这个问题CubeMX版本是:CubeMX设置:提示错误: 提示的这些明明是都已经包含了的产生工程代码时的
    发表于 11-27 09:01

    STM32CubeMx生成的代码编译出错

    不那么兼容,出现一些莫名其妙的错误。我的情况是:我的原工程是使用4.27.0版本的STM32CubeMx,以及1.21.0的HAL库代码包创建的;于是我把STM32CubeMx更新到了
    发表于 01-05 07:21

    编译使用CubeMX生成的代码时报错怎么办

    编译使用CubeMX生成的代码时报错:Error: L6218E: Undefined symbol HAL_PWREx_DisableUCPDDeadBattery (referred from
    发表于 02-15 06:51

    为什么无法使用CubeMx成功生成代码

    我正在关注 STM32WB55 的本教程在我尝试生成代码之前一切都很好。它在“正在复制库文件...”时卡住了。我尝试过的是不在 Root 下生成代码。但是这样做之后的问题是我无法编译项目。并返回给我
    发表于 12-12 07:17

    CubeMx如何从命令行或使用脚本触发代码生成?

    。目前需要手动构建:关闭工程,复制替换文件,打开工程,触发代码生成,编译。现在我正在尝试自动化。在脚本中替换这些文件并调用编译器(无头构建)是比较容易的部分。当代码已使用
    发表于 12-13 07:52

    无法从CubeMX生成的项目中编译代码咋办

    无法从 CubeMX 生成的项目编译代码。我得到:undefined reference to `touchgfx_init'我已经从 cubeMX 生成
    发表于 12-26 08:11

    CubeMX如何为代码生成选择特定的MCU包版本

    MCU 包。出于兼容性原因,我需要使用 MCU 包的 1.0.0 版(较新的版本不适合我)在代码生成期间,CubeMX 会自动将 MCU 包升级到最新的可用版本 (1.2.0)。为了
    发表于 12-27 06:00

    如何指示STM32CubeMX生成可使用ARM/Keil Compiler Version 6编译代码

    可以使用 ARM/Keil 编译版本 6 编译代码)?我目前必须将 STM32CubeMX 为 MDK-ARM V5.27(或 V5)生成
    发表于 01-13 07:13

    使用STM32CubeMx版本6.5.0生成的代码缺少HAL_RTCEx_SetWakeUpTimer_IT ()的原因?

    使用 STM32CubeMx 版本 6.5.0 生成的代码缺少 MX_RTC_Init () 函数中应包含的 HAL_RTCEx_SetWakeUpTimer_IT ()。
    发表于 02-02 07:38

    STM32CubeMX——搭建环境、编译烧写

    二、用STM32CubeMX生成工程文件(一)选择MCU和封装(二)配置时钟(三)配置调试模式(四)配置GPIO(五)代码生成三、填写main函数四、编译与仿真运行五、烧写与硬件实现六、总结七、参考文章一、STM32
    发表于 12-07 10:21 19次下载
    STM32<b class='flag-5'>CubeMX</b>——搭建环境、<b class='flag-5'>编译</b>烧写

    stm32cubeMX+vscode开发编译调试stm32程序

    stm32cubeMX+vscode开发编译调试stm32程序安装vscode安装make工具安装交叉编译工具链安装openocd安装clang llvm生成并编译
    发表于 12-24 19:31 6次下载
    stm32<b class='flag-5'>cubeMX</b>+vscode开发<b class='flag-5'>编译</b>调试stm32程序

    2.使用cubemx配置stm32(二)__核心配置

    图形配置调试接口CubeMX图形配置IO实现点灯CubeMX图形配置生成代码CubeMX图形配置生成EWARM代码
    发表于 12-27 18:48 0次下载
    2.使用<b class='flag-5'>cubemx</b>配置stm32(二)__核心配置

    Tengine从入门到放弃 第1篇-Tengine Android版本编译

    Tengine Android版本编译环境System: Ubuntu18.04CMAKE: 3.15.3下载Android NDK {代码...} 克隆Tengine源码 {代码..
    发表于 01-26 18:28 0次下载
    Tengine从入门到放弃 第1篇-Tengine Android<b class='flag-5'>版本</b><b class='flag-5'>编译</b>