3050311118 发表于 2015-9-18 22:09:07

CC2530,ZSTACK里的串口可以弄成奇偶校验么?结构体里没定义

void MT_UartInit ()
{
halUARTCfg_t uartConfig;

/* Initialize APP ID */
App_TaskID = 0;

/* UART Configuration */
uartConfig.configured         = TRUE;
uartConfig.baudRate             = MT_UART_DEFAULT_BAUDRATE;
uartConfig.flowControl          = MT_UART_DEFAULT_OVERFLOW;
uartConfig.flowControlThreshold = MT_UART_DEFAULT_THRESHOLD;
uartConfig.rx.maxBufSize      = MT_UART_DEFAULT_MAX_RX_BUFF;
uartConfig.tx.maxBufSize      = MT_UART_DEFAULT_MAX_TX_BUFF;
uartConfig.idleTimeout          = MT_UART_DEFAULT_IDLE_TIMEOUT;
uartConfig.intEnable            = TRUE;
#if defined (ZTOOL_P1) || defined (ZTOOL_P2)
uartConfig.callBackFunc         = MT_UartProcessZToolData;
#elif defined (ZAPP_P1) || defined (ZAPP_P2)
uartConfig.callBackFunc         = MT_UartProcessZAppData;
#else
uartConfig.callBackFunc         = NULL;
#endif

/* Start UART */
#if defined (MT_UART_DEFAULT_PORT)
HalUARTOpen (MT_UART_DEFAULT_PORT, &uartConfig);
#else
/* Silence IAR compiler warning */
(void)uartConfig;
#endif

/* Initialize for ZApp */
#if defined (ZAPP_P1) || defined (ZAPP_P2)
/* Default max bytes that ZAPP can take */
MT_UartMaxZAppBufLen= 1;
MT_UartZAppRxStatus   = MT_UART_ZAPP_RX_READY;
#endif

}

slzm40 发表于 2015-9-18 22:54:14

本帖最后由 slzm40 于 2015-9-18 22:59 编辑

修改原因,增加需要用到其它几个宏
这个不在结构体看,你可以看下 static void HalUARTInitISR(void) 里有个
UxUCR = UCR_FLUSH;               // Flush it.
这个是控制你想要的。查看宏里面里面有个   UCR_PARITY 。 对照下寄存器
                                                                UCR_BIT9
                                                                UCR_D9

slzm40 发表于 2015-9-18 22:09:08

另外,上面是说在HAL里改。如果在MT_UART下改,还得进入下层 HalUARTOpenISR 里面改
// 8 bits/char; no parity; 1 stop bit; stop bit hi.   
if (config->flowControl) 这句下面的UxUCR宏和上面提到的一样
页: [1]
查看完整版本: CC2530,ZSTACK里的串口可以弄成奇偶校验么?结构体里没定义