瑞萨e2studio----GPIO输入检测

描述

嵌入式

 

 

1.概述      
 

    本篇文章主要介绍如何使用e2studio对瑞萨单片机进行GPIO输入检测,并以LED显示。

 

 

  2.硬件准备   
 

    首先需要准备一个开发板,这里我准备的是芯片型号 R7FA2L1AB2DFL 的开发板。

嵌入式

 

 

3. 新建工程   
 

嵌入式

 

 

  4.工程模板   
 

嵌入式

 

 

  5.保存工程路径  

 

嵌入式

 

 

   6.芯片配置    

 

    本文中使用R7FA2L1AB2DFL来进行演示。

嵌入式

 

7

   7.工程模板选择    

 

嵌入式

 

   8.按键口&Led配置    

 

    由下图可以得知,板子上有2个LED灯,需要给高电平才可以点亮。

嵌入式嵌入式

    

当按下按键P015,P103亮,否则P103灭为案例进行配置。

嵌入式

 

 

 

   9.工程文件    

 

    查看pin_data.c,可以看到P103的定义已经写入,说明配置成功。

嵌入式

 

    打开main.c函数,发现写了一个hal_entry ()函数。

嵌入式

  

    打开hal_entry.c,可以看到在hal_entry函数内,注释着可以在这输入自己的代码。

嵌入式

 

 

   10.R_IOPORT_PortRead()函数原型    

 


fsp_err_t R_IOPORT_PortRead  (  
ioport_ctrl_t *const   p_ctrl,
bsp_io_port_t   port,
ioport_size_t *   p_port_value )  

//说明:Reads the value on an IO port. Implements ioport_api_t::portRead.The specified port will be read, and the levels for all the pins will be returned. Each bit in the returned value corresponds to a pin on the port. For example, bit 7 corresponds to pin 7, bit 6 to pin 6, and so on.

 

 故可以用 R_IOPORT_PortRead ()函数进行配置,配置高电平如下所示。


R_IOPORT_PortRead(&g_ioport_ctrl, BSP_IO_PORT_00, &p_port_value_port_15);

 

 

   11.R_IOPORT_PinRead()函数原型   

 


fsp_err_t R_IOPORT_PinRead  (  
ioport_ctrl_t *const   p_ctrl,
bsp_io_port_pin_t   pin,
bsp_io_level_t *   p_pin_value )    

//说明:Reads the level on a pin. Implements ioport_api_t::pinRead.

 

故可以用R_IOPORT_PinRead()函数进行读取IO口电平状态,该函数只能读取一个端口的电平。


bsp_io_level_t p_port_value_port_151;
R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_15, &p_port_value_port_151);
  •  

由上述可以得知,R_IOPORT_PortRead完全可以替代R_IOPORT_PinRead。

  •  

 

  12. 代码    

 

    hal_entry()中添加如下。

  •  
ioport_size_t p_port_value_port_15;
bsp_io_level_t p_port_value_port_151;
/*******************************************************************************************************************//**
 * main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used.  This function
 * is called by main() when no RTOS is used.
 **********************************************************************************************************************/
void hal_entry(void)
{
    /* TODO: add your own code here */
    while(1)
    {
        R_IOPORT_PortRead(&g_ioport_ctrl, BSP_IO_PORT_00, &p_port_value_port_15);
        if(p_port_value_port_15 & 0x8000)
            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
        else
            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);

        R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_15, &p_port_value_port_151);
        if(p_port_value_port_151)
            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
        else
            R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);
    }

	#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
	#endif
}
  •  
  •  

   13.视频教学    

 

视频教学在B站官方账号,欢迎观看B站教学视频~

 

 


原文标题:瑞萨e2studio----GPIO输入检测

文章出处:【微信公众号:RA生态工作室】欢迎添加关注!文章转载请注明出处。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分