打印
[单片机芯片]

【沁恒CH579评测】GPIO操作——翻转LED

[复制链接]
1356|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

一、LED的硬件接口

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


我们选PB0口的红色led进行操作。

二、代码编写

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

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

完整初始化函数:

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

R32_PB_OUT^=(1<<0);

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

#include "CH57x_common.h"
#include "gpio.h"

int main()
{   
        //SystemInit();
        led_init();
        while(1)
        {
                R32_PB_OUT^=(1<<0);
                DelayMs(1000);
        }   
}

编译:



下载后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 | 只看该作者
               

使用特权

评论回复
5
myiclife| | 2020-1-9 22:38 | 只看该作者
有什么入门的方法吗?

使用特权

评论回复
6
uytyu| | 2020-1-9 22:38 | 只看该作者
RGB三个LED吗      

使用特权

评论回复
7
iyoum| | 2020-1-9 22:38 | 只看该作者
怎么是PWM呢           

使用特权

评论回复
8
jkl21| | 2020-1-9 22:39 | 只看该作者
这个是做呼吸灯吗?              

使用特权

评论回复
9
wwppd| | 2020-1-9 22:39 | 只看该作者
谢谢楼主分享。         

使用特权

评论回复
10
maqianqu| | 2020-1-9 22:39 | 只看该作者
跟着楼主学习了。        

使用特权

评论回复
11
dspmana| | 2020-1-9 22:39 | 只看该作者
GPIO操作就是入门的操作。         

使用特权

评论回复
12
eefas| | 2020-1-9 22:39 | 只看该作者
沁恒CH579性能怎么样   

使用特权

评论回复
13
pklong| | 2020-1-9 22:39 | 只看该作者
如何实现gpio口模式的配置  

使用特权

评论回复
14
myiclife| | 2020-1-9 22:39 | 只看该作者
很给力呢。        

使用特权

评论回复
15
WCHTech2| | 2020-1-10 09:29 | 只看该作者
東南博士 发表于 2020-1-9 14:12
实现GPIO引脚电平翻转好像没有找到库函数,这里就直接操作寄存器:

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

在CH57x_gpio.h中,有GPIOX_ResetBits, GPIOX_SetBits 的宏定义,直接调用即可。

使用特权

评论回复
16
WCHTech2| | 2020-1-10 09:30 | 只看该作者
pklong 发表于 2020-1-9 22:39
如何实现gpio口模式的配置

可以参考CH57x_gpio.c,CH57x_gpio.h中的函数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

246

帖子

1

粉丝