请求帮助啊,多个gpio初始化问题

2019-07-21 01:14发布

我需要24个GPIO输出(要求同时输出),用到了PA、PB、PC、PD、PF、PG的6个引脚输出而且引脚的标号不一样比如用到PA1、PA2而PB用到PA3、PA4等,那么怎么初始化GPIO,是要建立6个独立的初始化程序吗??如下
void GPIOA_Init( )
{  
此处省略初始化A的语句若干
}
 void GPIOB_Iint(   )
{
同上大括号内,自觉把A换成B
}
最后分别是CDFG的初始化程序,
是这样吗????还是有其他方法??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
561787965
2019-07-21 08:47
好像有点明白,但是这样子的话一个数组应该解决不了,只能自己封装一个函数出来。
不过固件库有提供这样一个函数 [mw_shl_code=c,true]/** * @brief Writes data to the specified GPIO data port. * @param GPIOx: where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices * x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. * x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. * @param PortVal: specifies the value to be written to the port output data register. * @retval None */ void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal) { /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); GPIOx->ODR = PortVal; } [/mw_shl_code] 可以直接对整个IO口进行赋值。

一周热门 更多>