研究生
最后登录1970-1-1
在线时间 小时
注册时间2018-1-4
|
10火花
本帖最后由 如花 于 2018-4-29 09:09 编辑
我用GPIO复用FMC的代码如下:
- GPIO_InitTypeDef GPIO_InitStruct;
-
- RCC_AHB3PeriphResetCmd(RCC_AHB3Periph_FMC, ENABLE);
-
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC
- |RCC_AHB1Periph_GPIOD
- |RCC_AHB1Periph_GPIOE
- |RCC_AHB1Periph_GPIOF
- |RCC_AHB1Periph_GPIOG
- |RCC_AHB1Periph_GPIOH, ENABLE);
-
-
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
- GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
-
- /*A0-A11*/
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0
- | GPIO_Pin_1
- | GPIO_Pin_2
- | GPIO_Pin_3
- | GPIO_Pin_4
- | GPIO_Pin_5
- | GPIO_Pin_12
- | GPIO_Pin_13
- | GPIO_Pin_14
- | GPIO_Pin_15;
- GPIO_Init(GPIOF, &GPIO_InitStruct);
-
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_0, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_1, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_2, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_3, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_4, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_5, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_12, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_13, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_14, GPIO_AF_FMC);
- GPIO_PinAFConfig(GPIOF, GPIO_Pin_15, GPIO_AF_FMC);
复制代码 但不知道为什么程序在执行了几条GPIO_PinAFConfig的代码之后,就跑不动了。进入调试模式,发现停在了HardFault_Handler那里,然后选择Show Caller Code,发现是ADD r5,r0,#0x20这段汇编出了问题。
但是我看不懂是什么意思,哪位大神可以帮忙解释一下?
|
|