【中科微CSM32RV003绿色开发板免费体验】GPIO使用篇 - RISC-V MCU技术社区 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 - 威廉希尔官方网站
分享 收藏 返回

【中科微CSM32RV003绿色开发板免费体验】GPIO使用篇

在创建新项目的时候,会含有一个控制GPIO口输出状态切换的程序,起初将它视为了LED的控制程序,却一直没见到LED有任何的变化。

后来在获得开发板的原理图时才发现,PA4根本就没连接说明LED ,为了便于验证,就在该引脚接上了一个LED灯模块,才终于见到效果,见图1和图2所示。

其完整且安全的主程序为:

int main(void)
{
    RESET->NRST_EN =0;    //PA15初始化位外部复位引脚,低电平复位;
    CLIC_Init();//系统中断配置
    SysClock_Crystal_Mode_Init();//系统时钟初始化:晶振模式   
    GPIO_MODE_Init(GPIOA,PIN4,GPIO_MODE_OUTPUT); //GPIO 模式   
    while(1)
    {
        GPIO_Toggle(GPIOA,PIN4); //GPIO 翻转
        Delay16M_ms(500);
    }
}

image.png

图1 点亮LED

image.png

图2 熄灭LED

此外,在开发板上配有一个RGB_LED,那该如何使其发挥作用呢?

该器件的威廉希尔官方网站 见图3所示,由此可知它使用的引脚为PA8、PA9及PA12。

image.png

图3 RGB_LED威廉希尔官方网站

使RGB_LED依次点亮的主程序为:

int main(void)
{
    RESET->NRST_EN =0;    //PA15初始化位外部复位引脚,低电平复位;
    CLIC_Init();//系统中断配置
    SysClock_Crystal_Mode_Init();//系统时钟初始化:晶振模式   
    GPIO_MODE_Init(GPIOA,PIN4,GPIO_MODE_OUTPUT); //GPIO 模式
    GPIO_MODE_Init(GPIOA,PIN8,GPIO_MODE_OUTPUT);
    GPIO_MODE_Init(GPIOA,PIN9,GPIO_MODE_OUTPUT);
    GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT);
    while(1)
    {
        GPIO_Toggle(GPIOA,PIN4); //GPIO 翻转
        Delay16M_ms(500);
        GPIO_Toggle(GPIOA,PIN8); 
        Delay16M_ms(500);
        GPIO_Toggle(GPIOA,PIN9); 
        Delay16M_ms(500);
        GPIO_Toggle(GPIOA,PIN12); 
        Delay16M_ms(500);
    }
}

经程序的编译与下载,其显示效果如图4和图5所示。
image.png

图4 点亮红色LED

image.png

图5 点亮蓝色LED

此外,通过色彩的组合该能产生更多的色彩变换,见图6至图9所示。

image.png

图6 显示亮蓝色

image.png

图7 显示黄色

image.png

图8 显示白色

image.png

图9 熄灭全部LED

除了GPIO口的输出功能外,还有GPIO口的输入功能,如按键状态的识别等。

在连接触摸按键模块的情况下,使用下面的程序可实现LED的感应控制。

int main(void)
{   
RESET->NRST_EN =0;    //PA15初始化位外部复位引脚,低电平复位;   
CLIC_Init();//系统中断配置   
SysClock_Crystal_Mode_Init();//系统时钟初始化:晶振模式   
GPIO_MODE_Init(GPIOA,PIN4,GPIO_MODE_OUTPUT); //GPIO 模式   
GPIO_MODE_Init(GPIOA,PIN3,GPIO_MODE_INPUT);   
while(1)   
{        
if(GPIO_Read(GPIOA,PIN3)==0) GPIO_Write(GPIOA,PIN4,GPIO_SET);        
else GPIO_Write(GPIOA,PIN4,GPIO_RESET);   
}
}

经程序的编译与下载,其显示效果如图10和图11所示。
image.png

图10点亮LED

image.png

图11熄灭LED

在掌握了GPIO口的使用后,就可以此为基础来模拟SPI驱动LCD5110屏。

控制RGB_LED的目标文件为RGB_LED.elf,使用CSMISP进行下载可观察相应的测试效果。
*附件:rgb_led.zip

演示视频:

VID_20230913_102901

更多回帖

×
发帖