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

求助个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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版