"); //-->
ch32v003的pd7为外接复位引脚,如果需要使用外接GPIO复位,需要在用户字中配置,而PA1与PA2默认是外接晶振使用,如果需要配置成普通IO口使用,就必须先把system_ch32v00x.c文件中的宏定义改成内部晶振,如下:
//#define SYSCLK_FREQ_8MHz_HSI 8000000 //#define SYSCLK_FREQ_24MHZ_HSI HSI_VALUE #define SYSCLK_FREQ_48MHZ_HSI 48000000 //#define SYSCLK_FREQ_8MHz_HSE 8000000 //#define SYSCLK_FREQ_24MHz_HSE HSE_VALUE //#define SYSCLK_FREQ_48MHz_HSE 48000000
如图
还有在GPIO初始化时需要关闭外部晶振
GPIO_InitTypeDef GPIO_InitStructure = {0}; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);//这里需要添加进RCC_APB2Periph_AFIO GPIO_PinRemapConfig(GPIO_Remap_PA1_2, DISABLE); //关闭外部晶振 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_30MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_30MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);
初始化如图:
这样方能使用PA1,PA2做为普通GPIO口。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。