求助个HAL库函数问题--关于IO口写函数
标准库就有这个可以写一列IO口值的函数:void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);HAL库的是没有的吗?
HAL库只找到这个位写函数:void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
可不可以把这个参数赋值为 GPIO_PIN_All的?
要自己用寄存器写一个?一个一个IO的赋值?这样效率很低下的吧
谢谢!
可以all:
GPIO_PIN_All
也可以或:
GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_6
感谢版主的解说,我现在才知道可以写GPIO_PIN_All:lol creep 发表于 2017-3-14 18:04
可以all:
GPIO_PIN_All
也可以或:
这样子用HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,x)会有下面的警告的,说参数类型不匹配,参数好像只能是0/1的吧
warning:#188-D: enumerated type mixed with another type 奏奏奏 发表于 2017-3-14 18:44
感谢版主的解说,我现在才知道可以写GPIO_PIN_All
刚用HAL库,发现没有了Write_GPIO();所以就找到了GPIO_PIN_All creep 发表于 2017-3-14 18:04
可以all:
GPIO_PIN_All
也可以或:
假如我要把数据0x68写到PC0-PC7,0x68=0110 1000B,这样就是PC0=0,PC1=1.....,该用哪个库函数一次性搞定呢 队长shiwo 发表于 2017-3-14 18:51
这样子用HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,x)会有下面的警告的,说参数类型不匹配,参数好像只能是0 ...
发代码看下 既然写引脚的时候可以用"|"来连接,那么也可以用“GPIO_PIN_All”,所以应该可以的,前提是前面引脚都要初始化为输出。
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, GPIO_PIN_SET); creep 发表于 2017-3-14 19:12
发代码看下
#define IO_Data_Set(x) HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,(x&0x00f0)) zhao.zhao 发表于 2017-3-15 08:26
既然写引脚的时候可以用"|"来连接,那么也可以用“GPIO_PIN_All”,所以应该可以的,前提是前面引脚都要初 ...
#define IO_Data_Set(x) HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,(x&0x00f0))
这样子行不行的
页:
[1]
2