我有使用StdPeriph库编程stm32的经验。但现在我尝试使用STM32CubeMX代码生成器和STM32Cube HAL。我使用以下选项生成了一个项目:
- 中间件:通过SDIO的FreeRTOS和FatFS
- 编译器是GCC
- stm32f103ret6 MCU
我将生成的代码导入Eclipse环境。我像往常一样制作了一个二进制文件并使用“st-flash write ...”刷写。我的测试程序成功地循环向USART1写入“Hello”,这没有问题。但当我尝试刷写另一个代码时,它失败并显示“unknown chip id”。如果我手动将NRST连接到GND,st-flash会给出:
...Flash: 0 bytes (0 KiB) in pages of 2048 bytes
完整输出:
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中的ST-Link Utility,但它无法连接到此MCU以更改选项字节(与stm32连接到其他设备正常工作)。我尝试通过USART1烧写,但失败了。
当然,我烧写的源代码不包含任何读/写保护启用。我尝试了另外两个MCU,但这个错误被复制了。
我该如何解除MCU的砖化并烧写任何东西?