[APM32F0] Error: Flash Download failed - "Cortex-M0+"

[复制链接]
1810|7
 楼主| Aist2018 发表于 2023-11-28 14:24 | 显示全部楼层 |阅读模式
Error: Flash Download failed  -  "Cortex-M0+"     网上搜了各种方法不灵, J-FLASH里看设备没有极海设备,无法解除读写保护。怎么办?
 楼主| Aist2018 发表于 2023-11-28 14:56 | 显示全部楼层
可能是Flash读保护,如何解决解保护?
hjl2832 发表于 2023-11-29 08:23 | 显示全部楼层
用官方提供的ISP擦除后就可以用link烧写和仿真了
hjl2832 发表于 2023-11-29 08:24 | 显示全部楼层
另外可以用第3方的link工具,有选项字配置功能
qintian0303 发表于 2023-11-29 10:19 | 显示全部楼层
J-FLASH能发现单片机吗?
 楼主| Aist2018 发表于 2023-11-29 10:41 | 显示全部楼层
能发现MCU。造成这个情况的原因是什么呢?有人说我把SWDIO,SWCLCK引脚初始化了,所以只能写一次,反复写就出那个错误。但是我代码里初始化GPIO没动GPIOA的13,14引脚啊,这两个引脚是SWDIO和SWCLCK。
  1. //  初始化  GPIOA   
  2.     GPIO_Config_T  GPIO_InitStructure;   
  3.     GPIO_InitStructure.pin  =  GPIO_PIN_12;  
  4.     GPIO_InitStructure.mode =  GPIO_MODE_IN;  //  设置  GPIOA  的工作模式为输入模式   
  5.     GPIO_InitStructure.outtype  =  GPIO_OUT_TYPE_PP;  //  设置  GPIOA  的驱动模式为推挽式   
  6.     GPIO_InitStructure.pupd  =  GPIO_PUPD_NO;  //  设置  GPIOA  的上拉/下拉电阻为无   
  7.     GPIO_Config(GPIOA,  &GPIO_InitStructure);  //  初始化  GPIOA
  8.         NVIC_EnableIRQRequest(EINT4_15_IRQn, 0); //使能GPIO中断

  9.     RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);

  10.     GPIO_Config_T  GPIO_InitStruct;   
  11.     GPIO_InitStruct.pin  =  GPIO_PIN_6  |  GPIO_PIN_7;  //  设置  GPIOA 6,7为PWM输出
  12.     GPIO_InitStruct.mode  =  GPIO_MODE_AF;  //  设置  GPIOA  的工作模式为输出模式
  13.     GPIO_InitStruct.speed  =  GPIO_SPEED_50MHz;   
  14.     GPIO_InitStruct.outtype  =  GPIO_OUT_TYPE_PP;  //  设置  GPIOA  的驱动模式为推挽式   
  15.     GPIO_InitStruct.pupd  =  GPIO_PUPD_NO;  //  设置  GPIOA  的上拉/下拉电阻为无   
  16.     GPIO_Config(GPIOA,  &GPIO_InitStruct);  //  初始化  GPIOA
  17.     // 配置GPIO复用功能
  18.     GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_6, GPIO_AF_PIN2);
  19.     GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_7, GPIO_AF_PIN2);

  20.     /* Config GPIO */
  21.     GPIO_InitStruct.pin = GPIO_PIN_8 | GPIO_PIN_9;
  22.     GPIO_InitStruct.mode = GPIO_MODE_AF;
  23.     GPIO_InitStruct.speed = GPIO_SPEED_50MHz;
  24.     GPIO_InitStruct.outtype = GPIO_OUT_TYPE_OD;
  25.     GPIO_InitStruct.pupd = GPIO_PUPD_PU;
  26.     GPIO_Config(GPIOA, &GPIO_InitStruct);

  27.     GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_8, GPIO_AF_PIN2);
  28.     GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_9, GPIO_AF_PIN2);

  29.     /* Enable TMR1,TMR3 Periph Clock */
  30.     RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_TMR1);
  31.     RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_TMR3);
 楼主| Aist2018 发表于 2023-11-30 09:16 | 显示全部楼层
NVIC_EnableIRQRequest(EINT4_15_IRQn, 0); //使能GPIO中断
怀疑是这个设置造成的13,14SWDIO不工作,这个函数第二个参数不能是0吧?
typedef enum
{
    EINT_TRIGGER_RISING    = ((uint8_t)0x00), /*!< EINT trigger select rising edge */
    EINT_TRIGGER_FALLING   = ((uint8_t)0x01), /*!< EINT trigger select falling edge */
    EINT_TRIGGER_ALL       = ((uint8_t)0x02), /*!< EINT trigger select rising and falling edge */
} EINT_TRIGGER_T;
 楼主| Aist2018 发表于 2023-11-30 09:42 | 显示全部楼层
我只想用12引脚读GPIO中断,不能影响13,14SWD引脚,下面这样做可以吗?还会影响13,14SWD引脚吗?
  1. //  初始化  GPIOA   
  2.     GPIO_Config_T  GPIO_InitStructure;   
  3.     GPIO_InitStructure.pin  =  GPIO_PIN_12;  
  4.     GPIO_InitStructure.mode =  GPIO_MODE_IN;  //  设置  GPIOA  的工作模式为输入模式   
  5.     GPIO_InitStructure.outtype  =  GPIO_OUT_TYPE_PP;  //  设置  GPIOA  的驱动模式为推挽式   
  6.     GPIO_InitStructure.pupd  =  GPIO_PUPD_PU;  //  设置  GPIOA  的上拉/下拉电阻为无   
  7.     GPIO_Config(GPIOA,  &GPIO_InitStructure);  //  初始化  GPIOA
  8.     /* Configure GPIO pin used as EINT Line */
  9.     SYSCFG_EINTLine(SYSCFG_PORT_GPIOA, SYSCFG_PIN_12);
  10.     /* Configure Button exit line */
  11.     eintConfig.line    =  EINT_LINE12;
  12.     eintConfig.lineCmd =  ENABLE;
  13.     eintConfig.mode    =  EINT_MODE_INTERRUPT;
  14.     eintConfig.trigger =  EINT_TRIGGER_FALLING;
  15.     EINT_Config(&eintConfig);
  16.     NVIC_EnableIRQRequest(EINT4_15_IRQn, 0x0f);//使能GPIO中断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

90

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部