我想使用 UART RX 信号来触发 ERU 函数。 代码如下所示
这适用于 UART1 P2.0 和 P2.1
const XMC_GPIO_CONFIG_t CYBSP_DEBUG_UART_TX_config = { .mode =
(XMC_GPIO_MODE_t)CYBSP_DEBUG_UART_TX_MODE, .output_level =
XMC_GPIO_OUTPUT_LEVEL_LOW,};const XMC_GPIO_CONFIG_t
CYBSP_DEBUG_UART_RX_config = { .mode =
(XMC_GPIO_MODE_t)CYBSP_DEBUG_UART_RX_MODE, .input_hysteresis =
XMC_GPIO_INPUT_HYSTERESIS_STANDARD,};
XMC_UART_CH_InitEx(XMC_UART0_CH0, CYBSP_DEBUG_UART_config, true);
XMC_UART_CH_SetinputSource(XMC_UART0_CH0,
(XMC_UART_CH_INPUT_t)XMC_USIC_CH_INPUT_DX0, 4);
XMC_UART_CH_SetSamplePoint(XMC_UART0_CH0, 8U);
XMC_USIC_CH_SetInterruptNodePointer(XMC_UART0_CH0,
XMC_USIC_CH_INTERRUPT_NODE_POINTER_RECEIVE, 0U);
XMC_UART_CH_EnableEvent(XMC_UART0_CH0,
XMC_UART_CH_EVENT_STANDARD_RECEIVE);
XMC_GPIO_Init(XMC_GPIO_PORT2, 1, CYBSP_DEBUG_UART_TX_config);
XMC_GPIO_SetHardwareControl(XMC_GPIO_PORT2, 1,
XMC_GPIO_HWCTRL_DISABLED); XMC_GPIO_Init(XMC_GPIO_PORT2,
0, CYBSP_DEBUG_UART_RX_config);
XMC_GPIO_SetHardwareControl(XMC_GPIO_PORT2, 0,
XMC_GPIO_HWCTRL_DISABLED);
NVIC_SetPriority((IRQn_Type)IRQ9_IRQn, 3);
NVIC_EnableIRQ((IRQn_Type)IRQ9_IRQn);
NVIC_ClearPendingIRQ(IRQ9_IRQn);
请查看数据表,P2.0 是 ERU0.0B0
所以这是我的 ERU 设置。
const XMC_ERU_ETL_CONFIG_t button_event_generator_config = { .input_b
= XMC_ERU_ETL_INPUT_B0, .enable_output_trigger = 1,
.output_trigger_channel = XMC_ERU_ETL_OUTPUT_TRIGGER_CHANNEL0,
.status_flag_mode = XMC_ERU_ETL_STATUS_FLAG_MODE_SWCTRL, .source =
XMC_ERU_ETL_SOURCE_B, .edge_detection =
XMC_ERU_ETL_EDGE_DETECTION_FALLING,};const XMC_ERU_OGU_CONFIG_t
button_event_detection_config = { .enable_pattern_detection = 1,
.service_request =
XMC_ERU_OGU_SERVICE_REQUEST_ON_TRIGGER_AND_PATTERN_MATCH,
.pattern_detection_input = XMC_ERU_OGU_PATTERN_DETECTION_INPUT0,};void
ERU_Init(void){XMC_ERU_ETL_Init(ERU0_ETL0, button_event_generator_config);XMC_ERU_OGU_Init(ERU0_OGU0, button_event_detection_config);
NVIC_SetPriority(IRQ3_IRQn,NVIC_EncodePriority(NVIC_GetPriorityGrouping(),3,
192)); NVIC_EnableIRQ(IRQ3_IRQn);
}void ERU_IRQHandler(void){XMC_ERU_ETL_ClearStatusFlag(ERU0_ETL0);}
从 RX 接收到的数据确实进入了 ERU,但是为什么 UART TX 会针对每个数据触发 ERU 中断一次?
我的设置有什么问题吗?
共1条
1/1 1 跳转至页
使用UARTRX信号来触发ERU函数,为什么UARTTX会针对每个数据触发ERU中断一次?
关键词: UART 中断
共1条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
| OK1126B-S开发板下多时段语音提示型电子时钟被打赏¥27元 | |
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
我要赚赏金
