请教HK32F030MJ4M6的IOMUX多重映射无法使用
本帖最后由 非凡378159128 于 2021-4-10 22:49 编辑工程文件:IAR V6.7
首先已经宏定义了芯片型号
#define HK32F030MJ4M6 //定义芯片型号
用以下代码可以成功的把HK32F030MJ4M6的第1脚输出高电平点亮LED
int main(void)
{
GPIO_InitTypeDef m_gpio;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
m_gpio.GPIO_Mode = GPIO_Mode_OUT;
m_gpio.GPIO_OType = GPIO_OType_PP;
m_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
m_gpio.GPIO_Speed = GPIO_Speed_Level_2;
m_gpio.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOD, &m_gpio);
GPIO_SetBits(GPIOD, GPIO_Pin_6);
while (1)
{
}
}
但是用以下代码则无法把HK32F030MJ4M6的第1脚输出高电平
int main(void)
{
GPIO_InitTypeDef m_gpio;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
m_gpio.GPIO_Mode = GPIO_Mode_OUT;
m_gpio.GPIO_OType = GPIO_OType_PP;
m_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
m_gpio.GPIO_Speed = GPIO_Speed_Level_2;
//PD6 TO PA1 as GPIO
m_gpio.GPIO_Pin = GPIO_Pin_1;
GPIO_IOMUX_ChangePin(IOMUX_PIN1, IOMUX_PD6_SEL_PA1); //SOP8PIN1(PD6) PA1 IO
GPIO_Init(GPIOA, &m_gpio);
GPIO_SetBits(GPIOA, GPIO_Pin_1);
while (1)
{
}
}
也试过直接用寄存器操作也是没有任何效果
GPIOMUX->PKG_PIN_SEL |= IOMUX_PD6_SEL_PA1;
就像是IOMUX时钟没有被打开一样
所以不止是第1脚不能映射,所有支持映射的IO管脚都试过都不行
不知道有朋友遇到过类似问题没?
注:我试过HK32F030MF4P6可以成功将NRST管脚映射成PA0使用,但HK32F030MJ4M6死活不行,
GPIOMUX->NRST_PIN_KEY = 0x5AE1;
GPIOMUX->NRST_PA0_SEL = 0x01; //将NRST管脚映射为PA0管脚使用
结贴:芯片的问题,换一个芯片就好了,芯片居然只坏端口映射部分
这个代码看上去,头疼的要命,还是五颜六色的,就更不知道从何处着手了。不累吗? 真爱吴迪迪 发表于 2021-4-9 09:05
这个代码看上去,头疼的要命,还是五颜六色的,就更不知道从何处着手了。不累吗? ...
抱歉,已将字体设置成全黑 楼主还在用8脚的MCU吗,串口 GPIO EEPCOM可以调通,其他定时器 PWM AD 功能通通搞不定,你哪里是不是这样情况??? 这个东西比较不错的,很棒的应用。 这个东西确实不错的,很棒的一种应用。
不错的思路,很棒的想法。感谢楼主的分享。
页:
[1]