|
香主!问题解决了!
香主:问题解决了,还是程序问题啊!这我深有感触啊,论坛上好多人一旦有问题,都是怨天尤人,怀疑芯片或者库有问题,其实最大的问题往往还是我们的程序本身,我把这个问题摘录下来:希望大家以后不要犯这样的错误: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 |GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 |GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOD, &GPIO_InitStructure);
/* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),PE.14(D11), PE.15(D12) as alternate function push pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |GPIO_Pin_15; GPIO_Init(GPIOE, &GPIO_InitStructure); /* Set PF.00(A0 (RS)) as alternate function push pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOF, &GPIO_InitStructure);
/* Set PG.12(NE4 (LCD/CS)) as alternate function push pull - CE3 (LCD /CS) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_Init(GPIOG, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_WriteBit(GPIOE, GPIO_Pin_6, Bit_SET); 我这个最后初初始化段本来是放在上面的空白区域的,我在初始化一个东西IO口之后,由于下面的IO口还是需要50M,端口的上下拉状态还是相同,所以我下面的口初始化时候就同省略了速度和端口配置,以便减少一些语句,这本来是很不错的做法,但是我把初始化GPIOE6的(后来加上的初始化)往中间一放,这样的话由于这个口的初始化端口配置和前面不一样的,所以我这个初始化端口下面的语句就开始沿用我后来加上的这个端口的初始化配置,从而造成错误,改正的方法很简单,就是吧我后来加上的这个端口的初始化放在后面就好了,不能随便插在中间,从而吧以前正常的上下文的初始化流程被破坏!呵呵! |
|