2个回答
展开全部
stm32 GPIO要输出又要输入,则必须先配置其模式,然后再使用,例如,
void setinput(void)
{
...//其他设置
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;//设置为“上拉输入”模式
GPIO_Init(GPIOA,&GPIO_InitStruct);
}
void setoutput(void)
{
...//其他设置
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置为“推挽输出”模式
GPIO_Init(GPIOA,&GPIO_InitStruct);
}
void setgpio(u16 pin)
{
setoutput();
GPIO_SetBits(GPIOA,pin);
}
u16 getgpio(u16 pin)
{
setinput();
return GPIO_ReadInputDataBit(GPIOA, pin);
}
void setinput(void)
{
...//其他设置
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;//设置为“上拉输入”模式
GPIO_Init(GPIOA,&GPIO_InitStruct);
}
void setoutput(void)
{
...//其他设置
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置为“推挽输出”模式
GPIO_Init(GPIOA,&GPIO_InitStruct);
}
void setgpio(u16 pin)
{
setoutput();
GPIO_SetBits(GPIOA,pin);
}
u16 getgpio(u16 pin)
{
setinput();
return GPIO_ReadInputDataBit(GPIOA, pin);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询