打印
[CW32F003系列]

【CW32F003ExPx StartKit开发板】新手入门之GPIO

[复制链接]
706|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 peterLaw 于 2024-6-12 14:41 编辑

#申请原创# @21ic小跑堂
众所周知,对于大多数的MCU我们使用的功能只不过的其50%左右,其实最基础的还是IO的操作,有了IO的基础才可以逐步进行深入的开发。
下面咱们就以CW32F003ExPx StartKit开发板讲解入门IO操作。
首先对于任何一款开发板一定要了解的就是其原理,只有了解了原理才能知道各个引脚的状态,
下面咱们先把CW32F003ExPx StartKit开发板的原理图给大家分享一下:


通过原理图咱们可以知道按键S1与S2即(PB5与PB6引脚)默认连接的高电平,下面咱们就先把2个按键写入程序进行控制。
对于单片机而言尤其是库函数,一定要进行初始化配置,只有配置了各个引脚的功能才能使用引脚将功能实例化。下面为GPIOB引脚初始化代码:
    
    GPIO_InitTypeDef GPIO_InitStruct; //定义GPIO结构体
        
    CW_SYSCTRL->AHBEN_f.GPIOB = 1;    //Open GPIOB Clk,打开GPIOB口的时钟总线,就说明是GPIOB口操作

    //set PB05 / PB06 as inupt with pur / int = none
    GPIO_InitStruct.Pins = GPIO_PIN_5 | GPIO_PIN_6;//配置GPIOB的引脚5和6
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP;//配置为输入上拉
    GPIO_InitStruct.IT   = GPIO_IT_NONE;//不涉及中断
    GPIO_Init( CW_GPIOB , &GPIO_InitStruct);//初始化GPIOB
有了按键咱们用按键控制2个LED灯,选用PB00与PB01两个IO口连接LED灯。
过程跟上面一样初始化IO,配置为输出模式。
  //GPIO_InitTypeDef GPIO_InitStruct; //定义GPIO结构体,前面已经定义可以省去不用重复
//CW_SYSCTRL->AHBEN_f.GPIOB = 1;    //Open GPIOB Clk,打开GPIOB口的时钟总线,前面已经打开可以不用重复打开
                //set PB00 / PB01  as output
    GPIO_InitStruct.Pins = GPIO_PIN_0 | GPIO_PIN_1 ;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_Init( CW_GPIOB , &GPIO_InitStruct);
最后咱们编写逻辑,当PB5按下时,PB5口为低电平0(根据原理图可以看出按下接地为0,正常为1),PB5控PB00的LED灯,PB6控PB01的LED灯
  
    
        while(1)
        {
        //-----------------------------------------------------------------------
        //以下调用函数法读写PIN
        if( GPIO_ReadPin(CW_GPIOB , GPIO_PIN_5 ) )
        {
            GPIO_WritePin( CW_GPIOB , GPIO_PIN_0 , GPIO_Pin_SET );
        }
        else
        {
            GPIO_WritePin( CW_GPIOB , GPIO_PIN_0 , GPIO_Pin_RESET );
        }
        
        //-----------------------------------------------------------------------
        //以下采用宏读写PIN
        if( PB06_GETVALUE() )
        {
            PB01_SETHIGH();
           // PB03_TOG();
        }
        else
        {
            PB01_SETLOW();
        }            
    }

最终显示的效果如下:

通过本文对芯源开发板的IO控制讲解是不是非常简单,赶快跟我们一起玩转芯源MCU!



使用特权

评论回复
沙发
AdaMaYun| | 2024-6-13 19:52 | 只看该作者
楼主讲解的很详细,学习到了

使用特权

评论回复
板凳
OKAKAKO| | 2024-6-21 21:29 | 只看该作者
新手入门的GPIO非常详细

使用特权

评论回复
地板
中国龙芯CDX| | 2024-6-26 15:34 | 只看该作者
最基础的还是IO的操作,有了IO的基础才可以逐步进行深入的开发。

使用特权

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

本版积分规则

26

主题

272

帖子

0

粉丝