初中生
最后登录1970-1-1
在线时间 小时
注册时间2021-7-25
|
本帖最后由 zxcvbnm868 于 2021-8-7 22:52 编辑
f407的板子,写了GPIO端口的置位复位函数,单独使用都没问题,放进while循环控制led闪烁,led只亮一下然后熄灭,请问各位大佬是啥问题。
麻烦帮看一下,用注释掉的代码运行led闪烁正常。置位复位单独用,能点亮熄灭led。
int main()
{
*(unsigned int *)(0x40023830) |= (1<<5);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOF,&GPIO_InitStruct);
while(1)
{
// GPIOF->ODR &= ~(1<<6);
// delay(0x2fffff);
GPIO_ResetBits(GPIOF,GPIO_Pin_6);
delay(0xfffff);
GPIO_SetBits(GPIOF,GPIO_Pin_6);
delay(0xfffff);
}
}
置位复位函数
void GPIO_SetBits(GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin)
{
GPIOx->BSRRL = GPIO_Pin;
}
void GPIO_ResetBits(GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin)
{
GPIOx->BSRRH = GPIO_Pin;
}
|
|