ST意法半导体
直播中

学电超人

12年用户 777经验值
擅长:微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制 微处理器/微控制
私信 关注
[问答]

STM32F303RE板上传代码到微控制器时发生内部命令错误如何解决

当我尝试将我的代码上传到微控制器时遇到了这个问题。
我使用的是 STM32F303RE Nucleo 板,每当我尝试上传代码时,都会发生此错误:
内部命令错误
在那之后,它不允许我上传任何代码。我搜索了解决方案,它是擦除将 BOOT0 置于高电平的代码,但我再次尝试并失败了。
我有这个 I2C 协议的初始化(在 while 循环之前)函数:
  • void Initializate_I2C(){
  •         //using AF4
  •         periph::GPIO::set_pin(GPIOA, 14, ALTERNATE); //SDA
  •         periph::GPIO::set_pin(GPIOA, 15, ALTERNATE); //SCL
  •         GPIOA->OTYPER |= ((1U << 14U) | (1U << 15U));
  •         GPIOA->AFR[1] |= (4U << 28U);
  •         GPIOA->AFR[1] |= (4U << 24U);
  •         //periph::GPIO::set_afrh(GPIOA, 4U, 24U);
  •         //periph::GPIO::set_afrh(GPIOA, 4U, 28U);
  •         periph::I2C::Init(I2C1, 0x00201D2BU, FILTER_COF_1);
  • }
我注意到只有删除第 8 行和第 9 行(为 I2C 配置 afrh),代码才会成功上传。否则,会发生内部命令错误
我更新了 st-link,因为这是我在互联网上能找到的唯一解决方案,但它没有用。


回帖(1)

刘琪琛

2022-12-28 15:21:12
PA14 由 SWD 调试器/编程器使用。为它们分配不同的功能将导致调试连接断开。
您仍然可以通过在 STM32CubeProgrammer 中使用“复位时连接”并擦除芯片来恢复芯片。
如果您的 IDE 有“重置时连接”选项,您仍然可以上传代码,但您将无法调试
举报

更多回帖

发帖
×
20
完善资料,
赚取积分