首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有R/W保护的代码闪烁后禁用STM32闪烁

在没有R/W保护的代码闪烁后禁用STM32闪烁
EN

Stack Overflow用户
提问于 2015-06-14 13:17:33
回答 3查看 5.5K关注 0票数 5

我有一些StdPeriph库用于编程stm32的经验。但是现在我尝试了STM32Cube HAL和STM32CubeMX代码生成器。我生成了一个具有以下选项的项目:

  • 中间件:通过SDIO的FreeRTOS和FatFS
  • 编译器是GCC
  • stm32f103ret6单片机

我将生成的代码导入Eclipse环境。我做了一个二进制,然后用“st写.”像往常一样。我的测试程序成功地在循环中写信给USART1 "Hello“--这不是问题。但是,当我试图闪现另一段代码时,它用“未知芯片id”失败了。如果我手动连接NRST到GND,st-flash给出:

代码语言:javascript
复制
...Flash: 0 bytes (0 KiB) in pages of 2048 bytes

全部产出:

代码语言:javascript
复制
2015-06-14T16:07:29 INFO src/stlink-common.c: Loading device parameters....
2015-06-14T16:07:29 INFO src/stlink-common.c: Device connected is: F1 High-density device, id 0x10036414
2015-06-14T16:07:29 INFO src/stlink-common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0 bytes (0 KiB) in pages of 2048 bytes

我试着使用Windows实用程序,但是它不能连接到这个MCU来改变选项字节(连接到另一个stm32设备很好)。我试图闪过USART1,但失败了。

当然,我闪现的源代码不包含任何启用读/写保护。我尝试了另外两个MCU,但是这个错误被复制了。

我怎样才能解除MCU和闪存任何东西?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-27 22:31:33

如果您正确地设置了JTAG/SWD引脚的引脚分配(例如SYS_JTDI,SYS_JTDO TRACESWO等)在STM32CubeMX的pinout选项卡上,生成的代码不会禁用JTAG/SWD。

票数 4
EN

Stack Overflow用户

发布于 2015-06-16 19:25:20

我找到了一个根本原因!

这是一个HAL初始化函数,由STM32CubeMX生成:

代码语言:javascript
复制
void HAL_MspInit(void)
{
  /* USER CODE BEGIN MspInit 0 */

  /* USER CODE END MspInit 0 */

  __HAL_RCC_AFIO_CLK_ENABLE();

  HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);

  /* System interrupt init*/
/* SysTick_IRQn interrupt configuration */
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);

    /**DISABLE: JTAG-DP Disabled and SW-DP Disabled 
    */
  __HAL_AFIO_REMAP_SWJ_DISABLE();

  /* USER CODE BEGIN MspInit 1 */

  /* USER CODE END MspInit 1 */
}

我没注意到这句简单的台词!

代码语言:javascript
复制
/**DISABLE: JTAG-DP Disabled and SW-DP Disabled 
*/
__HAL_AFIO_REMAP_SWJ_DISABLE();

这个宏完全禁用了社署和JTAG编程,请看stm321xx_hal_gpio_ex.h

代码语言:javascript
复制
#define __HAL_AFIO_REMAP_SWJ_DISABLE()  MODIFY_REG(AFIO->MAPR, AFIO_MAPR_SWJ_CFG, AFIO_MAPR_SWJ_CFG_DISABLE) 

我没有在CubeMX中找到任何禁用/启用SWD/JTAG的复选框,所以这是--代码生成器的唯一行为!在使用STM32CubeMX时要注意这一点!

票数 5
EN

Stack Overflow用户

发布于 2017-12-04 22:22:38

它(埋在)下,STM32CubeMX...set到串行电线或其他。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30829838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档