|
上面的问题已解决,
呵呵,搜了以下资料,然后多试了几次.找到原因,呵呵,希望看到该帖的能省点时间. 是的,在APB2有个AFIO的设置 只要设置Periperal Clock Enable 就ok!!!! hehe,简单吧??不知道还真费神!!:D
STM32的GPIO预处理过程如下: /* Configure the system clocks */ RCC_Configuration(); /* NVIC Configuration */ NVIC_Configuration();
//初始化GPIO接口 /* AFIO Periperal Clock Enable */ RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO,ENABLE ); /* Enable SWJ , Disable JTAG */ GPIO_PinRemapConfig( GPIO_Remap_SWJ_JTAGDisable , ENABLE ); //后面的代码根据你的需要修改即可. /* Enable GPIOC clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
/* Configure PA.8, PC.15 as Output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_15 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure PB.0 --, PB.9 as Output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |GPIO_Pin_4 | GPIO_Pin_5 |GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure);
/* Configure PC.13, PC.14 as Output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure);
/* 至于如何设置GPIO的输出状态,参考下面这个帖子 */
https://bbs.eeworld.com.cn/club/bbs/list.asp?boardid=49&page=1&t=2809599&tp=%u6211%u8FD9%u6837%u8BBE%u7F6Egpio%u5BF9%u5417%3F%3F |
|