RA生态之外部中断EXIT
Posted 衾许°
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RA生态之外部中断EXIT相关的知识,希望对你有一定的参考价值。
实现:通过按键形式以及灯的亮灭形式进行演示
EXIT 配置
Stacks->New Stack->Input -> External IRQ Driver on r_icu
R_ICU_ExternalIrqOpen()函数:配置用于外部中断接口的 IRQ 输入引脚,配置如下所示。
/* Configure the external interrupt. */ fsp_err_t err = R_ICU_ExternalIrqOpen(&g_external_irq7_ctrl,&g_external_irq7_cfg); assert(FSP_SUCCESS == err);
例程:
#include "hal_data.h"
#include <stdio.h>FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER
fsp_err_t err = FSP_SUCCESS;
/******************************************************************/
/*串口重定向*/
volatile bool uart_send_complete_flag = false;
int fputc(int ch, FILE *f)
err = R_SCI_UART_Write(&g_uart0_ctrl, (uint8_t *)&ch, 1);
if(FSP_SUCCESS != err) __BKPT();
while(uart_send_complete_flag == false)
uart_send_complete_flag = false;
return 0;
/*串口回调函数*/
void user_uart_callback (uart_callback_args_t * p_args)
if(p_args->event == UART_EVENT_TX_COMPLETE)
uart_send_complete_flag = true;
/******************************************************************/
/*外部中断回调函数*/
bsp_io_level_t level = BSP_IO_LEVEL_LOW;
void exit0_callback(external_irq_callback_args_t *p_args)
(void) p_args;
if(level) R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);
else R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
level=~ level;
void hal_entry(void)
/*外部中断初始化用的外部中断0的3通道*/
err = R_ICU_ExternalIrqOpen(&g_external_irq0_ctrl, &g_external_irq0_cfg);
assert(FSP_SUCCESS == err);
/*使能外部中断*/
err = R_ICU_ExternalIrqEnable(&g_external_irq0_ctrl);
assert(FSP_SUCCESS == err);
while(1)
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS);
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
把P206当成一个触摸按键,碰一下LED就改变状态
以上是关于RA生态之外部中断EXIT的主要内容,如果未能解决你的问题,请参考以下文章