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

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

[复制链接]
队长shiwo 提问时间:2017-3-14 17:25 /
阅读主题, 点击返回1楼
收藏 1 评论18 发布时间:2017-3-14 17:25
18个回答
奏奏奏 回答时间:2017-3-15 09:44:42
本帖最后由 奏奏奏 于 2017-3-15 09:46 编辑
  1.   /* USER CODE BEGIN 2 */

  2.   /* USER CODE END 2 */

  3.   /* Infinite loop */
  4.   /* USER CODE BEGIN WHILE */
  5.   while (1)
  6.   {
  7.   /* USER CODE END WHILE */

  8.   /* USER CODE BEGIN 3 */
  9.                 HAL_Delay(2000);
  10.                 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_All);
  11.                
  12.   }
  13.   /* USER CODE END 3 */
复制代码
队长shiwo 回答时间:2017-3-15 10:04:12

这个是全部反转GPIOB的值吧
MrJiu 回答时间:2017-3-15 10:13:22
直接右键,看一下代码实现,不就很清楚了嘛!!!!开源,啥叫开源,就是用来看滴!!!
zhao.zhao 回答时间:2017-3-15 10:16:18
队长shiwo 发表于 2017-3-15 08:45
#define IO_Data_Set(x)        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,(x&0x00f0))
这样子行不行的 ...

你的意思是给GPIOC端口赋值0X00F0, 这样赋值不行的,0X00F0 !=0 所以作为 “1”来处理,
这样你GPIOC端口所有的输出都是"1";如果你要按你的意愿来做,只有直接写寄存器。自己做个函数吧。网上例子挺多的。
队长shiwo 回答时间:2017-3-15 10:17:49
MrJiu 发表于 2017-3-15 10:13
直接右键,看一下代码实现,不就很清楚了嘛!!!!开源,啥叫开源,就是用来看滴!!! ...

看的懂那个库函数的,就是找不到GPIO_Write()功能的函数而已,
队长shiwo 回答时间:2017-3-15 10:19:58
zhao.zhao 发表于 2017-3-15 10:16
你的意思是给GPIOC端口赋值0X00F0, 这样赋值不行的,0X00F0 !=0 所以作为 “1”来处理,
这样你GPIOC端 ...

void IO_Write_DataBit(uchar data)
{
  
  GPIOC->ODR |= 0xff;  
  GPIOC->ODR &= data;
   
}
我也是这样想的,直接操作寄存器算了,上面那个函数应该可以实现了吧
zhao.zhao 回答时间:2017-3-15 10:26:08
zhao.zhao 发表于 2017-3-15 10:16
你的意思是给GPIOC端口赋值0X00F0, 这样赋值不行的,0X00F0 !=0 所以作为 “1”来处理,
这样你GPIOC端 ...

#define    GPIOCout(x)       GPIOC->ODR=x;      // GPIOC端口输出 X

先把GPIOC都设置为推挽输出,然后试试这个
zhao.zhao 回答时间:2017-3-15 10:29:44
";"可以不要写,程序中直接调用"GPIOCout(0x00f0);"
队长shiwo 回答时间:2017-3-15 10:35:39
zhao.zhao 发表于 2017-3-15 10:29
";"可以不要写,程序中直接调用"GPIOCout(0x00f0);"

非常感谢了
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版