STM32CubeIDE“避坑”大全

中文字体显示变小

在文本编辑区点击右键,选择“Preferences",选择”General“->“Appearance”->“Colors and Fonts”,在右侧的"Basic"->”Text Font“中选择”Edit“,选择”中欧字体“。

工程的复制

仿真调试时变量数字格式的切换

使用版本:stm32cubeide1.6.1
在“现场表达式”窗口中观察变量,如果想切换数字格式,点击右上角的三个小点。
在这里插入图片描述
如果选择相应的数字格式后并不切换,建议重新启动软件。

关于DG32f103C8T6 不启动的问题-调试可以运行自启动不行

勾选“Use MicroLIB"
在这里插入图片描述

重新初始化串口是,一定要先调用反初始化函数

因为硬件初始化的时候看目前的状态,如果不是RESET状态就跳过硬件初始化。已串口初始化为例:

  if (huart->gState == HAL_UART_STATE_RESET)
  {
    /* Allocate lock resource and initialize it */
    huart->Lock = HAL_UNLOCKED;

#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
    UART_InitCallbacksToDefault(huart);

    if (huart->MspInitCallback == NULL)
    {
      huart->MspInitCallback = HAL_UART_MspInit;
    }

    /* Init the low level hardware */
    huart->MspInitCallback(huart);
#else
    /* Init the low level hardware : GPIO, CLOCK */
    HAL_UART_MspInit(huart);
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
  }

关于串口DMA传输使用STM32CubeMx自动生成代码不运行的问题

软件自动生成的初始代码是

	MX_GPIO_Init();
	MX_UART4_Init();
  	MX_UART5_Init();
	MX_USART1_UART_Init();
  	MX_USART2_UART_Init();
  	MX_USART3_UART_Init();
  	MX_DMA_Init();
  	MX_SPI1_Init();

发现DMA部分的初始化不起作用,似乎是得先初始化DMA,再初始化串口,于是在后面添加代码重新初始化一遍,问题解决。

	HAL_UART_DeInit(huart1);
	HAL_UART_DeInit(huart2);
	HAL_UART_DeInit(huart3);
	HAL_UART_DeInit(huart4);
	HAL_UART_DeInit(huart5);
	
	MX_UART4_Init();
  	MX_UART5_Init();
	MX_USART1_UART_Init();
 	MX_USART2_UART_Init();
  	MX_USART3_UART_Init();

注意:不能在原位置改代码,否则Mx重新生成的时候又改回来了。
必须新解除初始化再初始化,否则硬件不更改。

参考文章:

在Stm32CubeIDE环境下使用DAP-Link仿真
https://blog.csdn.net/lone5moon/article/details/117790199

stm32 HAL库 Flash操作简介
https://blog.csdn.net/qq_35502383/article/details/115659288

STM32G0 按照8位16位的方式写入flash HAL库
https://blog.csdn.net/KyleKuang/article/details/123632300

关于DG32f103C8T6 不启动的问题-调试可以运行自启动不行
https://blog.csdn.net/u010261063/article/details/124023138

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值