打印
[APM32F0]

Error: Flash Download failed - "Cortex-M0+"

[复制链接]
1283|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工具,有选项字配置功能

使用特权

评论回复
5
qintian0303| | 2023-11-29 10:19 | 只看该作者
J-FLASH能发现单片机吗?

使用特权

评论回复
6
Aist2018|  楼主 | 2023-11-29 10:41 | 只看该作者
能发现MCU。造成这个情况的原因是什么呢?有人说我把SWDIO,SWCLCK引脚初始化了,所以只能写一次,反复写就出那个错误。但是我代码里初始化GPIO没动GPIOA的13,14引脚啊,这两个引脚是SWDIO和SWCLCK。
//  初始化  GPIOA   
    GPIO_Config_T  GPIO_InitStructure;   
    GPIO_InitStructure.pin  =  GPIO_PIN_12;  
    GPIO_InitStructure.mode =  GPIO_MODE_IN;  //  设置  GPIOA  的工作模式为输入模式   
    GPIO_InitStructure.outtype  =  GPIO_OUT_TYPE_PP;  //  设置  GPIOA  的驱动模式为推挽式   
    GPIO_InitStructure.pupd  =  GPIO_PUPD_NO;  //  设置  GPIOA  的上拉/下拉电阻为无   
    GPIO_Config(GPIOA,  &GPIO_InitStructure);  //  初始化  GPIOA
        NVIC_EnableIRQRequest(EINT4_15_IRQn, 0); //使能GPIO中断

    RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);

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

    /* Config GPIO */
    GPIO_InitStruct.pin = GPIO_PIN_8 | GPIO_PIN_9;
    GPIO_InitStruct.mode = GPIO_MODE_AF;
    GPIO_InitStruct.speed = GPIO_SPEED_50MHz;
    GPIO_InitStruct.outtype = GPIO_OUT_TYPE_OD;
    GPIO_InitStruct.pupd = GPIO_PUPD_PU;
    GPIO_Config(GPIOA, &GPIO_InitStruct);

    GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_8, GPIO_AF_PIN2);
    GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_9, GPIO_AF_PIN2);

    /* Enable TMR1,TMR3 Periph Clock */
    RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_TMR1);
    RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_TMR3);

使用特权

评论回复
7
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;

使用特权

评论回复
8
Aist2018|  楼主 | 2023-11-30 09:42 | 只看该作者
我只想用12引脚读GPIO中断,不能影响13,14SWD引脚,下面这样做可以吗?还会影响13,14SWD引脚吗?
//  初始化  GPIOA   
    GPIO_Config_T  GPIO_InitStructure;   
    GPIO_InitStructure.pin  =  GPIO_PIN_12;  
    GPIO_InitStructure.mode =  GPIO_MODE_IN;  //  设置  GPIOA  的工作模式为输入模式   
    GPIO_InitStructure.outtype  =  GPIO_OUT_TYPE_PP;  //  设置  GPIOA  的驱动模式为推挽式   
    GPIO_InitStructure.pupd  =  GPIO_PUPD_PU;  //  设置  GPIOA  的上拉/下拉电阻为无   
    GPIO_Config(GPIOA,  &GPIO_InitStructure);  //  初始化  GPIOA
    /* Configure GPIO pin used as EINT Line */
    SYSCFG_EINTLine(SYSCFG_PORT_GPIOA, SYSCFG_PIN_12);
    /* Configure Button exit line */
    eintConfig.line    =  EINT_LINE12;
    eintConfig.lineCmd =  ENABLE;
    eintConfig.mode    =  EINT_MODE_INTERRUPT;
    eintConfig.trigger =  EINT_TRIGGER_FALLING;
    EINT_Config(&eintConfig);
    NVIC_EnableIRQRequest(EINT4_15_IRQn, 0x0f);//使能GPIO中断

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

78

帖子

0

粉丝