关于CH32F208WBU6 GPIOC 上拉或者推挽的问题

实际设计中使用GPIOC端口上拉和推挽出现问题,所以使用开发板验证。


1.GPIOC 0/1 中断设置,使用CH32F&V208W-R0-1v4开发板测试,两块板验证同一代码。


    GPIO_InitTypeDef  GPIO_InitStructure= {0};

    EXTI_InitTypeDefEXTI_InitStructure= {0};

    NVIC_InitTypeDefNVIC_InitStructure= {0};


    RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOC, ENABLE );


    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;

    GPIO_Init( GPIOC, &GPIO_InitStructure );


    /* GPIOC ----> EXTI_Line0 */

    GPIO_EXTILineConfig( GPIO_PortSourceGPIOC, GPIO_PinSource0);

    EXTI_InitStructure.EXTI_Line=EXTI_Line0;

    EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

    EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;

    EXTI_InitStructure.EXTI_LineCmd=ENABLE;

    EXTI_Init( &EXTI_InitStructure );


    NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;

    NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;

    NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

    NVIC_Init( &NVIC_InitStructure );

以上设置在端口浮空的情况下,EXTI0会连续触发中断,判断端口内部上拉不起作用,外部加上拉电阻后工作正常。请问F208 GPIOC 端口上拉或者下拉是否还需要其他的设置?,目前只测试了0,1端口,其他端口是否存在类似问题呢?


2. GPIOC 0/1 输出推挽问题,使用CH32F&V208W-R0-1v4开发板测试,两块板验证同一代码。

voidGPIO_Toggle_INIT( void )

{

    GPIO_InitTypeDef  GPIO_InitStructure= {0};


    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_Init( GPIOC, &GPIO_InitStructure );

}

使用GPIO_Toggle例程不能点亮LED灯,而使用例程原有的GPIOA 0则没有问题。


问题:上述GPIOC 端口的上拉和推挽问题是否属于正常?或者需要额外的软件设置。

如果属于正常问题,手册哪个部分有说明。是否还有其他端口有类似问题,望解答,谢谢!


需要注意这边的一个排阻image.png,附件是开发板的原理图。在看看这个是不是选择的启动文件与宏定义都是D8w的,https://www.cnblogs.com/wchmcu/p/17091711.html 下载编译型号不同更改


谢谢!!!,参考链接修改例程的keil工程,更改目标芯片,替换掉启动s文件和添加D8W宏定义,GPIOC 0/1推挽和中断已运行ok;

原因是有些例程中针对F208的配置,没有涉及到,需要自己修改到位。

图片.png

图片.png

图片.png


只有登录才能回复,可以选择微信账号登录