主题中讨论的其他器件: IWR6843
您好!
我正在基于 IWR6843AOP 的"开箱即用"固件开发定制固件。
对于与外部器件的串行通信、我尝试在 UART 上使用中断。
为此、引脚按照"开箱即用"演示的方式创建、并初始化 UART。
/******* PINMUX UART //* 设置 PINMUX 以显示 UART-1 */ Pinmux_set_OverrideCtrl (SOC_XWR6843AOP_PINU16_PADBE、PINMUX_OUTEN_RETAIN_HW_CTRL、PINMUX_INPEN_RETAIN_HW_CTRL); Pinmux_Set_FuncSel (SOC_XWR6843AOP_PINU16_PADBE、SOC_XWR6843AOP_PINU16_PADBE_MSS_UARTA_TX); Pinmux_set_OverrideCtrl (SOC_XWR6843AOP_PINV16_PADBD、PINMUX_OUTEN_RETAIN_HW_CTRL、PINMUX_INPEN_RETAIN_HW_CTRL); Pinmux_Set_FuncSel (SOC_XWR6843AOP_PINV16_PADBD、SOC_XWR6843AOP_PINV16_PADBD_MSS_UARTA_RX);
和
/*设置默认 UART 参数*/ UART_PARAMS_INIT (uartParams); uartParams.writeDataMode = UART_DATA_BINARY; uartParams.readDataMode = UART_DATA_BINARY; uartParams.clockFrequency = gMmwMCB.cfg.platformCfg.sysClockFrequency; uartParams.baudrate = gMmwMCB.cfg.platformCfg.commandBaudRate; uartParams.isPinMuxDone = 1; uartParams.readTimeout = 13; uartParams.readEcho = UART_ECHO_OFF; uartParams.parityType = UART_PAR_LEVen;
在 BIOS_start()被执行之前,使用以下参数创建一个硬件中断:
hwi_handle hwi0;
Hwi_Params HwiParams;
ERROR_Block EB;
ERROR_INIT (&EB);
Hwi_Params_init (hwiParams);
hwiParams.arg = 64;
hwiParams.enableInt = 1;
hwi0 = Hwi_create (5、&hwi0Fxn、&hwiParams、&EB);
if (hwi0 == NULL){
system_abort ("Hwi 创建失败");
}
Hwi_enableInterrupt (5);
Hwi_enable();
还插入了回调函数:
void hwi0Fxn (UArg arg){
System_printf ("HWI 0"、0);
}
在一个任务中、数据通过从 UART 逐次读取
uartReadBytes = UART_Read (gMmwMCB.commandUartHandle、singleBuffer、1);
但是、回调函数永远不会执行。
回调用于在稍后切换用于 RS485通信的 GPIO。
我是否必须设置其他值?
此致
Felix
更多信息:
毫米波 SDK:3.5.0.4
器件:IWR6843AOP
