论坛元老
 
- 积分
- 3359
- 金钱
- 3359
- 注册时间
- 2011-11-10
- 在线时间
- 207 小时
|
10金钱
测试I2C时发现PB7脚始终不输出1,于是专门简化了个测试代码,结果发现WHILE循环里PB6脚反转正常,PB7脚始终为0。
查了手册,PB7脚复位后第一功能就是PB7,也没有开任何复用,程序里把时钟SystemClock_Config()都屏蔽了,还是解决不了。
请问一下有过类似经验的高手指教一下,先谢谢了!
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOB_CLK_ENABLE();
HAL_GPIO_DeInit(GPIOB,GPIO_PIN_7);
HAL_GPIO_DeInit(GPIOB,GPIO_PIN_6);
Delay_Nms(10);
/*Configure GPIO pins : PBPin PBPin */
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,,GPIO_PIN_6,GPIO_PIN_SET);
}
int main(void)
{
HAL_Init();
// SystemClock_Config();
IIC_Init();
while(1)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);
Delay_Nus(4);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);
Delay_Nus(4);
}
}
|
|