[单片机芯片] 【沁恒CH579评测】GPIO操作——翻转LED

[复制链接]
1819|15
 楼主| xinmeng_wit 发表于 2020-1-4 11:15 | 显示全部楼层 |阅读模式

一、LED的硬件接口

外设板上有一个RGB的三色led灯,查看原理图,如下:

搜狗截图20200104104142.png
我们选PB0口的红色led进行操作。

二、代码编写

首先将PB0口设置为输出,调用函数GPIOB_ModeCfg(GPIO_Pin_0,GPIO_ModeOut_PP_20mA);PP模式

需要注意的是,端口A和端口B的配置函数是不一样的

完整初始化函数:

  1. void led_init(void)
  2. {
  3.         GPIOB_ModeCfg(GPIO_Pin_0,GPIO_ModeOut_PP_20mA);
  4. }
实现GPIO引脚电平翻转好像没有找到库函数,这里就直接操作寄存器:

R32_PB_OUT^=(1<<0);

实现1s翻转一次的主函数如下:

  1. #include "CH57x_common.h"
  2. #include "gpio.h"

  3. int main()
  4. {   
  5.         //SystemInit();
  6.         led_init();
  7.         while(1)
  8.         {
  9.                 R32_PB_OUT^=(1<<0);
  10.                 DelayMs(1000);
  11.         }   
  12. }

编译:

11.png

下载后led灯以1s频率闪烁。



東南博士 发表于 2020-1-9 14:12 | 显示全部楼层
实现GPIO引脚电平翻转好像没有找到库函数,这里就直接操作寄存器:

这个是不是厂家的BSP包里面直接写好的?调用即可?
 楼主| xinmeng_wit 发表于 2020-1-9 22:18 | 显示全部楼层
東南博士 发表于 2020-1-9 14:12
实现GPIO引脚电平翻转好像没有找到库函数,这里就直接操作寄存器:

这个是不是厂家的BSP包里面直接写好的 ...

是的
touser 发表于 2020-1-9 22:37 | 显示全部楼层
               
myiclife 发表于 2020-1-9 22:38 | 显示全部楼层
有什么入门的方法吗?
uytyu 发表于 2020-1-9 22:38 | 显示全部楼层
RGB三个LED吗      
iyoum 发表于 2020-1-9 22:38 | 显示全部楼层
怎么是PWM呢           
jkl21 发表于 2020-1-9 22:39 | 显示全部楼层
这个是做呼吸灯吗?              
wwppd 发表于 2020-1-9 22:39 | 显示全部楼层
谢谢楼主分享。         
maqianqu 发表于 2020-1-9 22:39 | 显示全部楼层
跟着楼主学习了。        
dspmana 发表于 2020-1-9 22:39 | 显示全部楼层
GPIO操作就是入门的操作。         
eefas 发表于 2020-1-9 22:39 | 显示全部楼层
沁恒CH579性能怎么样   
pklong 发表于 2020-1-9 22:39 | 显示全部楼层
如何实现gpio口模式的配置  
myiclife 发表于 2020-1-9 22:39 | 显示全部楼层
很给力呢。        
WCHTech2 发表于 2020-1-10 09:29 | 显示全部楼层
東南博士 发表于 2020-1-9 14:12
实现GPIO引脚电平翻转好像没有找到库函数,这里就直接操作寄存器:

这个是不是厂家的BSP包里面直接写好的 ...

在CH57x_gpio.h中,有GPIOX_ResetBits, GPIOX_SetBits 的宏定义,直接调用即可。
WCHTech2 发表于 2020-1-10 09:30 | 显示全部楼层
pklong 发表于 2020-1-9 22:39
如何实现gpio口模式的配置

可以参考CH57x_gpio.c,CH57x_gpio.h中的函数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

279

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部