【沁恒RISC-V内核 CH582】2-GPIO的使用
[复制链接]
GPIO的输出
板载了2个LED,在原理图上找了半天也没有找到LED是接在了哪里,经过网友lugl4313820的提醒,才知道这个led是通过自己飞线连接到某个引脚上的。
通过杜邦线将LED2连接到PB19。使用输出功能,需要先配置引脚为输出状态,通过函数void GPIOB_ModeCfg( UINT32 pin, GPIOModeTypeDef mode ); 初始化IO口的。这个函数是区分PA端口和PB端口的。
输出相关的函数有:
GPIOB_ResetBits( pin )
GPIOB_SetBits( pin )
GPIOB_InverseBits( pin ) //翻转引脚
void led_init()
{
GPIOB_ModeCfg(GPIO_Pin_19,GPIO_ModeOut_PP_5mA);
}
void toggle_led()
{
GPIOB_InverseBits(GPIO_Pin_19);
mDelaymS(500);
}
注:void mDelaymS( UINT16 t ) 是库函数提供的延时函数,在'CH58x_sys.h'中有原型。改文件中还有一个微秒的延时函数void mDelayuS( UINT16 t ) 。
输入功能
板载一个用户按键,可以实现IO口的输入功能。同样首先设置引脚的功能,然后调用读取函数。
void button_init()
{
GPIOB_ModeCfg(GPIO_Pin_4,GPIO_ModeIN_PU);
}
void check_button()
{
if(GPIOB_ReadPortPin(GPIO_Pin_4)){
GPIOB_SetBits(GPIO_Pin_19);
}else{
GPIOB_ResetBits(GPIO_Pin_19);
}
}
|