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

【经验分享】STM32G0学习手册——点亮LED(GPIO用法HAL库)

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
新建CubeMX工程
这片文章中,我们使用芯片自带的HSI时钟,所以不需要配置时钟树,使用默认频率(16MHz),以便理解步骤。

打开SWD调试接口
在引脚视图中,点击PC6,选择"GPIO_Output"。在配置页中选择GPIO-PC6。(LED灯是接到PC6引脚的)

20200419170920422.png


20200419170759937.png


配置引脚属性
GPIO output level:默认输出电平。Hight和Low

GPIO mode :设置引脚输出模式。有推挽和开漏

GPIO Pull-up/Pull-down:设置上下拉。

Maximum output speed:设置引脚速度。有四个等级。

User Label:设置用户标签。相当于自己命名引脚。比如设置LED6,在MDK软件里LED6_Pin,就是这个引脚。自定义引脚格式为*_Pin。

20200419172351532.jpg


生成代码后,使用MDK软件工程,在魔术棒-debug选项卡中勾上"Rest and Run"。
在Application/User目录下,打开main.c文件。找到while(1)函数,写入下面两句代码。
  1.   while (1)
  2.   {
  3.     /* USER CODE END WHILE */

  4.     /* USER CODE BEGIN 3*/            //在BEGIN与END之间添加代码。重新生成工程就不会删掉
  5.                 HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);   //翻转IO引脚
  6.                 HAL_Delay(2000);                        //延时2秒
  7.   }
  8.   /* USER CODE END 3 */
复制代码

编译后,下载烧录到板子中。
有人想我不想有规律的闪动,或者常亮呢,该用什么命令呢?就用到一下命令。

GPIO HAL库函数
  1. void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);   //设置引脚函数
复制代码

GPIO_TypeDef *GPIOx:GPIOA,B,C...
uint16_t GPIO_Pin:GPIO_PIN_0~GPIO_PIN15
GPIO_PinState PinState:GPIO_PIN_RESET(低电平),GPIO_PIN_SET(高电平)
  1.   while (1)
  2.   {
  3.     /* USER CODE END WHILE */

  4.     /* USER CODE BEGIN 3 */
  5.                 HAL_Delay(1000);
  6.                 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_6,GPIO_PIN_RESET);    //LED灯会亮两秒钟
  7.                 HAL_Delay(2000);
  8.                 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_6,GPIO_PIN_SET);      //LED灯会灭一秒钟
  9.   }
  10.   /* USER CODE END 3 */
  11. }
复制代码

GPIO_PinState     HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);               //读取引脚电平

GPIO_TypeDef *GPIOx:GPIOA,B,C...
uint16_t GPIO_Pin:GPIO_PIN_0~GPIO_PIN_15
GPIO_PinState返回值:GPIO_PIN_RESET=0代表低电平、GPIO_PIN_SET=1代表高电平
还有其他函数,大家在实际中运用吧。
                     
  1. void     HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);         //翻转IO引脚电平
  2. HAL_StatusTypeDef    HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);            //锁定IO引脚电平
复制代码


收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

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