请求帮助啊,多个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
1楼-- · 2019-07-21 06:30
 精彩回答 2  元偷偷看……
561787965
2楼-- · 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口进行赋值。
龙之谷
3楼-- · 2019-07-21 10:00
至于写成6个函数分别初始化还是写成1个把初始化都放在一块看你自己心情吧
最小谷子
4楼-- · 2019-07-21 14:33
 精彩回答 2  元偷偷看……
最小谷子
5楼-- · 2019-07-21 15:14
回复【2楼】龙之谷:
---------------------------------
谢谢了啊!!!
最小谷子
6楼-- · 2019-07-21 15:43
 精彩回答 2  元偷偷看……

一周热门 更多>