[技术问答] 请教HK32F030MJ4M6的IOMUX多重映射无法使用

[复制链接]
 楼主| 非凡378159128 发表于 2021-4-9 01:14 | 显示全部楼层 |阅读模式
本帖最后由 非凡378159128 于 2021-4-10 22:49 编辑

工程文件:IAR V6.7
HK32F030MJ4M6-IOMUX-IAR_V6.7.zip (255.25 KB, 下载次数: 7)

首先已经宏定义了芯片型号
  1. #define HK32F030MJ4M6 //定义芯片型号

用以下代码可以成功的把HK32F030MJ4M6的第1脚输出高电平点亮LED

  1. int main(void)
  2. {
  3.   GPIO_InitTypeDef m_gpio;
  4.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX, ENABLE);
  5.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  6.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
  7.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
  8.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);

  9.   m_gpio.GPIO_Mode = GPIO_Mode_OUT;
  10.   m_gpio.GPIO_OType = GPIO_OType_PP;
  11.   m_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
  12.   m_gpio.GPIO_Speed = GPIO_Speed_Level_2;

  13.   m_gpio.GPIO_Pin = GPIO_Pin_6;
  14.   GPIO_Init(GPIOD, &m_gpio);
  15.   GPIO_SetBits(GPIOD, GPIO_Pin_6);

  16.   while (1)
  17.   {
  18.   }
  19. }

但是用以下代码则无法把HK32F030MJ4M6的第1脚输出高电平

  1. int main(void)
  2. {
  3.   GPIO_InitTypeDef m_gpio;
  4.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX, ENABLE);
  5.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  6.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
  7.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
  8.   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);

  9.   m_gpio.GPIO_Mode = GPIO_Mode_OUT;
  10.   m_gpio.GPIO_OType = GPIO_OType_PP;
  11.   m_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
  12.   m_gpio.GPIO_Speed = GPIO_Speed_Level_2;

  13.   //PD6 TO PA1 as GPIO
  14.   m_gpio.GPIO_Pin = GPIO_Pin_1;
  15.   GPIO_IOMUX_ChangePin(IOMUX_PIN1, IOMUX_PD6_SEL_PA1); //SOP8  PIN1(PD6) PA1 IO
  16.   GPIO_Init(GPIOA, &m_gpio);

  17.   GPIO_SetBits(GPIOA, GPIO_Pin_1);

  18.   while (1)
  19.   {
  20.   }
  21. }

也试过直接用寄存器操作也是没有任何效果
  1. GPIOMUX->PKG_PIN_SEL |= IOMUX_PD6_SEL_PA1;

就像是IOMUX时钟没有被打开一样
所以不止是第1脚不能映射,所有支持映射的IO管脚都试过都不行

不知道有朋友遇到过类似问题没?
注:我试过HK32F030MF4P6可以成功将NRST管脚映射成PA0使用,但HK32F030MJ4M6死活不行,
  1. GPIOMUX->NRST_PIN_KEY = 0x5AE1;
  2. GPIOMUX->NRST_PA0_SEL = 0x01; //将NRST管脚映射为PA0管脚使用
82991607099e95ac7c.png
结贴:芯片的问题,换一个芯片就好了,芯片居然只坏端口映射部分
真爱吴迪迪 发表于 2021-4-9 09:05 | 显示全部楼层
这个代码看上去,头疼的要命,还是五颜六色的,就更不知道从何处着手了。不累吗?
 楼主| 非凡378159128 发表于 2021-4-9 23:45 | 显示全部楼层
真爱吴迪迪 发表于 2021-4-9 09:05
这个代码看上去,头疼的要命,还是五颜六色的,就更不知道从何处着手了。不累吗? ...

抱歉,已将字体设置成全黑
yingdian6 发表于 2021-9-16 11:24 | 显示全部楼层
楼主还在用8脚的MCU吗,串口 GPIO EEPCOM可以调通,其他定时器 PWM AD 功能通通搞不定,你哪里是不是这样情况???

评论

[url=home.php?mod=space&uid=1290744]@yingdian6[/url] :慢慢来嘛。。莫着急。。  发表于 2021-10-21 20:19
[url=home.php?mod=space&uid=2680286]@ks11900[/url] :开发板已经在吃灰,不想弄它了  发表于 2021-10-21 19:30
你这搞得我不敢上了。。。我刚说想弄几个做做小玩意呢。。。8脚m0还是挺不错的。  发表于 2021-10-18 22:12
单片小菜 发表于 2021-10-19 09:28 | 显示全部楼层
这个东西比较不错的,很棒的应用。
嵌入小菜菜 发表于 2021-10-27 16:59 | 显示全部楼层
这个东西确实不错的,很棒的一种应用。
kjkujkj22 发表于 2021-11-1 12:13 | 显示全部楼层
不错的思路,很棒的想法。感谢楼主的分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

15

帖子

2

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

3

主题

15

帖子

2

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