STM32CubeMX使用心得(一)


前言

新手使用STM32CubeMX要注意的坑,而且还是巨坑
接下来我讲讲我遇到的,大家参考一下,以免掉坑里浪费时间


我在用STM32CubeMX生成代码时,没有在SYS中将Debug那一项配置成Serial Wire,则在生成代码时就会在stm32f1xx_hal_msp.c这个文件中产生一个函数__HAL_AFIO_REMAP_SWJ_DISABLE(),这个函数在我将这个代码烧入单片机后强行锁住,之后下载器再也搜索不到单片机(在魔术棒设置里),情况如下,后面我会说明解决办法。

void HAL_MspInit(void)
{
  /* USER CODE BEGIN MspInit 0 */

  /* USER CODE END MspInit 0 */

  __HAL_RCC_AFIO_CLK_ENABLE();
  __HAL_RCC_PWR_CLK_ENABLE();

  /* System interrupt init*/

  /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled 
  */
  __HAL_AFIO_REMAP_SWJ_DISABLE();        //就是这个函数,会锁柱单片机

  /* USER CODE BEGIN MspInit 1 */

  /* USER CODE END MspInit 1 */
}

STM32CubeMX配置及正确程序:
STM32CubeMX配置
配置正确后正确程序如下:

void HAL_MspInit(void)
{
  /* USER CODE BEGIN MspInit 0 */

  /* USER CODE END MspInit 0 */

  __HAL_RCC_AFIO_CLK_ENABLE();
  __HAL_RCC_PWR_CLK_ENABLE();

  /* System interrupt init*/

  /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled 
  */
  __HAL_AFIO_REMAP_SWJ_NOJTAG();

  /* USER CODE BEGIN MspInit 1 */

  /* USER CODE END MspInit 1 */
}

即使你已经将单片机锁住了,没关系啊,下面是解决办法

解决办法


首先要在单片机板子上将BOOT0置1,即将这个引脚手动接到3.3V,BOOT1置0。然后通过串口下载将程序下载到单片机,注意!!!这里的程序是指你在STM32CubeMX上重新配置好SYS(Debug那一栏选择Serial Wire,前面已经说明)所生成的代码。在将程序通过串口下载烧进去后,再将BOOT0置0,手动复位后,程序已经能够运行了,这时你在MDK上通过下载器也能搜索到单片机。YES,it’s over

这里提一嘴,串口下载程序自己查找,度娘上很多方法。

结果如下:

在这里插入图片描述


希望这个解答能帮助到大家,遇到问题解决问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值