当我尝试将我的代码上传到微控制器时遇到了这个问题。
我使用的是
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,因为这是我在互联网上能找到的唯一解决方案,但它没有用。