欢迎来到泰骏兴电子,大家有问题可以直接联系管理员QQ:233619809单片机 QQ群:59194556 各位游客也可以注册玩玩,享受更多权益。温馨提示:本网站仅提供平台学习以及渠道,一切后果自行承担,还望广大用户提高自我意识,请不要轻易相信他人,请不要轻易相信他人,请不要轻易相信他人。为了更好的管理论坛工作,所以现在使用邮箱注册,如果以前的邮箱不能修改的,请联系管理员代为修改

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 75|回复: 0

PY单片机使用HAL库点亮LED

[复制链接]
发表于 2023-9-15 17:04:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
实际上吧点亮LED就相当于IO口输出高低电平,实际上吧这个程序不一定可以点亮LED,也可以说是控制有源蜂鸣器响和不响,实际上吧就是高低电平输出



.c文件
  1. #include "led.h"


  2. void led_io_init()
  3. {
  4.                         GPIO_InitTypeDef  GPIO_InitStruct;
  5.                         __HAL_RCC_GPIOA_CLK_ENABLE();                          /* GPIOA时钟使能 */

  6.                         /* 初始化GPIO PA11 */
  7.                         GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3;
  8.                         GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */
  9.                         GPIO_InitStruct.Pull = GPIO_PULLUP;                    /* 使能上拉 */
  10.                         GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;     /* GPIO速度 */

  11.                         HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);                /* GPIO初始化 */


  12. }

















复制代码
.H文件

  1. #ifndef __LED_H__
  2. #define __LED_H__

  3. #include "main.h"

  4. #define led_red_gpio                        GPIOA
  5. #define led_red_io_pin                        GPIO_PIN_3
  6. #define led_red_no()                        HAL_GPIO_WritePin(led_red_gpio,led_red_io_pin,GPIO_PIN_SET)  //设置IO口为高电平               
  7. #define led_red_of()                        HAL_GPIO_WritePin(led_red_gpio,led_red_io_pin,GPIO_PIN_RESET)//设置IO口为低电平
  8. #define led_red_ove()                        HAL_GPIO_TogglePin(led_red_gpio, led_red_io_pin);//翻转IO

  9. #define led_orange_gpio                        GPIOA
  10. #define led_orange_io_pin                GPIO_PIN_4
  11. #define led_orange_no()                        HAL_GPIO_WritePin(led_orange_gpio,led_orange_io_pin,GPIO_PIN_SET)  //设置IO口为高电平               
  12. #define led_orange_of()                        HAL_GPIO_WritePin(led_orange_gpio,led_orange_io_pin,GPIO_PIN_RESET)//设置IO口为低电平
  13. #define led_orange_ove()                HAL_GPIO_TogglePin(led_orange_gpio, led_orange_io_pin);//翻转IO

  14. #define led_green_gpio                        GPIOA
  15. #define led_green_io_pin                GPIO_PIN_5
  16. #define led_green_no()                        HAL_GPIO_WritePin(led_green_gpio,led_green_io_pin,GPIO_PIN_SET)  //设置IO口为高电平               
  17. #define led_green_of()                        HAL_GPIO_WritePin(led_green_gpio,led_green_io_pin,GPIO_PIN_RESET)//设置IO口为低电平
  18. #define led_green_ove()                        HAL_GPIO_TogglePin(led_green_gpio, led_green_io_pin);//翻转IO








  19. void led_io_init(void);







  20. #endif




复制代码



设置的IO口就间隔一段时间输出高低电平
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|泰骏兴电子科技有限公司 ( 粤ICP备2023060260号-1 ) 单片机爱好者

GMT+8, 2026-1-10 12:07

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表