[CIU32F003系列] CIU32F003全部引脚复用后,芯片无法识别

[复制链接]
 楼主| 骑着乌龟跑 发表于 2025-7-10 11:23 | 显示全部楼层 |阅读模式
本帖最后由 骑着乌龟跑 于 2025-7-10 11:24 编辑

问题1:CIU32F003全部引脚复用后,芯片无法识别,该如何解决?
问题2:CIU32F003 RST、SWDIO引脚复用为普通IO口后,接到相应复用引脚后,芯片无法识别,该如何解决?
复古留声机 发表于 2025-7-11 09:17 | 显示全部楼层
这个问题可能是由于复用配置不当导致的,建议检查复用配置是否正确,特别是RST和SWDIO这两个关键引脚。
dffzh 发表于 2025-7-11 10:11 | 显示全部楼层
RST和SWDIO引脚复用为普通IO口后,仿真器没办法与目标MCU通信了吧?所以无法识别MCU了。GPIO资源这么紧张?这些特殊引脚都用上了。
 楼主| 骑着乌龟跑 发表于 2025-7-11 13:29 | 显示全部楼层
复古留声机 发表于 2025-7-11 09:17
这个问题可能是由于复用配置不当导致的,建议检查复用配置是否正确,特别是RST和SWDIO这两个关键引脚。
...

方案为了准确评估芯片功耗,按照官方手册给的方法,实测功耗;将所有引脚配置为模拟输入模式,烧录程序后,芯片无法被二次识别。
void ALL_Peripheral_OFF(void)
{
        std_gpio_init_t gpio_cfg = {0};
        std_rcc_gpio_clk_enable( RCC_PERIPH_CLK_GPIOA|RCC_PERIPH_CLK_GPIOB|RCC_PERIPH_CLK_GPIOC);

  gpio_cfg.pin = GPIO_PIN_All;
  gpio_cfg.mode = GPIO_MODE_ANALOG;
        gpio_cfg.pull = GPIO_NOPULL;
        std_gpio_init(GPIOA, &gpio_cfg);
       
        std_gpio_init(GPIOA, &gpio_cfg);
        std_gpio_init(GPIOB, &gpio_cfg);
        std_gpio_init(GPIOC, &gpio_cfg);

        RCC->AHBEN = 0;
        RCC->APBEN1 = 0;
        RCC->APBEN2 = 0;
}

评论

烧录引脚一般不会带来多大的电流功耗吧,可以对比一下配置和不配置的功耗数据。  发表于 2025-7-11 13:42
 楼主| 骑着乌龟跑 发表于 2025-7-11 13:39 | 显示全部楼层
dffzh 发表于 2025-7-11 10:11
RST和SWDIO引脚复用为普通IO口后,仿真器没办法与目标MCU通信了吧?所以无法识别MCU了。GPIO资源这么紧张? ...

如图,按照官方参考手册,可将特殊引脚复用到其他引脚;比如:给该寄存器NRST_SWD_MODE值为00,PC0为NRST,PB6为SWDIO;值为10时,PC0为GPIO,PB6为SWDIO;11时,PC0为SWDIO,PB6为GPIO。主要是利于硬件设计。

寄存器

寄存器
 楼主| 骑着乌龟跑 发表于 2025-7-11 13:41 | 显示全部楼层
dffzh 发表于 2025-7-11 10:11
RST和SWDIO引脚复用为普通IO口后,仿真器没办法与目标MCU通信了吧?所以无法识别MCU了。GPIO资源这么紧张? ...

另外,该型号最大封装就是ttsop20的,何谈引脚之多?只是什么场合用什么片子,最大化利用其资源。
治愈糖果屋 发表于 2025-7-11 14:25 | 显示全部楼层
您好,尝试检查一下是否所有必要的引脚都正确配置了,特别是电源和时钟引脚。如果这些基本引脚没有正确配置,芯片可能无法正常工作。
onemoren 发表于 2025-7-11 15:19 | 显示全部楼层
上电后,不要立即将RST/SWDIO配置产普通IO,可以等500ms甚至1S后才配置。这样烧录器可以在配置前与MCU有机会连接上;或者自己设置某个IO的特殊功能,比如长按这个IO,可以将RST/SWDIO引脚从普通IO模式返原为默认模式
 楼主| 骑着乌龟跑 发表于 2025-7-11 16:07 | 显示全部楼层
onemoren 发表于 2025-7-11 15:19
上电后,不要立即将RST/SWDIO配置产普通IO,可以等500ms甚至1S后才配置。这样烧录器可以在配置前与MCU有机 ...

谢谢答复,目前也是用这种方式解决的;但是我好奇普通配置就可以将特殊管脚正常配置,为什么还增加通过寄存器NRST_SWD_MODE?(值为00,PC0为NRST,PB6为SWDIO;值为10时,PC0为GPIO,PB6为SWDIO;11时,PC0为SWDIO,PB6为GPIO。
时光迷宫 发表于 2025-7-12 09:56 | 显示全部楼层
你要问下厂家支不支持全部复用,你复用了不是原来功能了肯定识别不了
穷得响叮当侠 发表于 2025-7-12 13:38 | 显示全部楼层
您好,芯片无法识别可能是因为复用配置不正确或者复用后没有正确配置引脚模式。请检查您的复用设置是否符合CIU32F003的数据手册要求。
 楼主| 骑着乌龟跑 发表于 2025-7-14 11:35 | 显示全部楼层
治愈糖果屋 发表于 2025-7-11 14:25
您好,尝试检查一下是否所有必要的引脚都正确配置了,特别是电源和时钟引脚。如果这些基本引脚没有正确配置 ...

谢谢答复,配置代码在上面,你可以帮忙看看是否有没有正确配置了。
 楼主| 骑着乌龟跑 发表于 2025-7-14 11:36 | 显示全部楼层
onemoren 发表于 2025-7-11 15:19
上电后,不要立即将RST/SWDIO配置产普通IO,可以等500ms甚至1S后才配置。这样烧录器可以在配置前与MCU有机 ...

收到,谢谢
 楼主| 骑着乌龟跑 发表于 2025-7-14 11:37 | 显示全部楼层
时光迷宫 发表于 2025-7-12 09:56
你要问下厂家支不支持全部复用,你复用了不是原来功能了肯定识别不了

收到。谢谢
 楼主| 骑着乌龟跑 发表于 2025-7-14 11:39 | 显示全部楼层
穷得响叮当侠 发表于 2025-7-12 13:38
您好,芯片无法识别可能是因为复用配置不正确或者复用后没有正确配置引脚模式。请检查您的复用设置是否符合 ...

感谢你的建议。
暖心小太阳 发表于 2025-7-15 18:34 | 显示全部楼层
您好,尝试复位芯片看看是否能够识别。如果问题依旧,可能需要检查复用配置是否正确。
逆鳞风暴 发表于 2025-7-23 17:52 | 显示全部楼层
您好,尝试检查一下复用配置是否正确,有时候复用配置错误会导致芯片无法识别。
破晓战神 发表于 2025-7-24 10:42 | 显示全部楼层
这个问题可能是由于复用配置不当导致的,建议检查引脚复用配置是否正确。
时光迷宫 发表于 2025-8-1 10:12 | 显示全部楼层
我感觉是配置没对,你把swd的口子用掉了。
暗夜幽灵骑士 发表于 2025-8-2 10:12 | 显示全部楼层
这个问题可能是由于引脚复用配置不当导致的,建议检查引脚复用的配置代码,确保没有冲突。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

18

帖子

0

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