你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助个HAL库函数问题--关于IO口写函数

[复制链接]
队长shiwo 提问时间:2017-3-14 17:25 /
标准库就有这个可以写一列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的赋值?这样效率很低下的吧

谢谢!


收藏 1 评论18 发布时间:2017-3-14 17:25

举报

18个回答
creep 回答时间:2017-3-14 18:04:29
可以all:
GPIO_PIN_All
也可以或:
GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_6
奏奏奏 回答时间:2017-3-14 18:44:53
感谢版主的解说,我现在才知道可以写GPIO_PIN_All
队长shiwo 回答时间:2017-3-14 18:51:42
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
队长shiwo 回答时间:2017-3-14 18:52:55
奏奏奏 发表于 2017-3-14 18:44
感谢版主的解说,我现在才知道可以写GPIO_PIN_All

刚用HAL库,发现没有了Write_GPIO();所以就找到了GPIO_PIN_All
队长shiwo 回答时间:2017-3-14 18:56:27
creep 发表于 2017-3-14 18:04
可以all:
GPIO_PIN_All
也可以或:

假如我要把数据0x68写到PC0-PC7,0x68=0110 1000B,这样就是PC0=0,PC1=1.....,该用哪个库函数一次性搞定呢
creep 回答时间:2017-3-14 19:12:27
队长shiwo 发表于 2017-3-14 18:51
这样子用HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,x)会有下面的警告的,说参数类型不匹配,参数好像只能是0 ...

发代码看下
zhao.zhao 回答时间:2017-3-15 08:26:03
既然写引脚的时候可以用"|"来连接,那么也可以用“GPIO_PIN_All”,所以应该可以的,前提是前面引脚都要初始化为输出。
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, GPIO_PIN_SET);
队长shiwo 回答时间:2017-3-15 08:42:24

#define IO_Data_Set(x)        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,(x&0x00f0))
队长shiwo 回答时间:2017-3-15 08:45:32
zhao.zhao 发表于 2017-3-15 08:26
既然写引脚的时候可以用"|"来连接,那么也可以用“GPIO_PIN_All”,所以应该可以的,前提是前面引脚都要初 ...

#define IO_Data_Set(x)        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,(x&0x00f0))
这样子行不行的
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版