我想使用 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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
我要赚赏金
