大学生
最后登录1970-1-1
在线时间 小时
注册时间2023-10-9
|
发表于 2023-10-25 09:43:32
|
显示全部楼层
1.GPIO_Init(GPIOB, &GPIO_InitStruct);函数应该放在最后,你要配置完GPIO_InitStruct再去调用GPIO_Init;
所以,你没有正确配置IO,所以灯暗,并且颜色不对.
2.因为GPIO_InitStruct是临时变量,你使用while(1)循环调用,可能每次进入LED_GPIO_Conifg函数给GPIO_InitStruct分配的是同一地址,所以恰好你上一次写入结构体的数据还被保存在同一位置,所以第二次循环的时候GPIO_Init函数正确的初始化了.
这也是为什么加上while(1)现象正常.这一点只是我的猜测.不知我解释是否清楚.你可以使用单步调试,看第一次循环是否与不加while(1)现象一致,第二次循环出现了你预期的现象.
同样你也可以通过DEBUG观察第一次循环与后面循环你GPIO_Init函数调用时,观察GPIO_InitStruct结构体里面数据的区别来验证这点
|
|