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

求助个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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版