|
在我們的協(xié)議棧實(shí)驗(yàn)文件夾下面找到協(xié)議棧中串口基礎(chǔ)實(shí)驗(yàn),
具體路徑《協(xié)議棧實(shí)驗(yàn)\2.協(xié)議棧中串口基礎(chǔ)實(shí)驗(yàn)\ZStack-CC2530-
2.3.0-1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB》,雙
擊
類型為 IAR IDE WorkSpace 的文件進(jìn)入程序中。
本實(shí)驗(yàn)使用串口的步驟是:
(1) 串口初始化;
(2) 登記任務(wù)號(hào);
(3) 執(zhí)行任務(wù);
下面是具體步驟:
串口初始化相信大家很熟悉,就是配置串口號(hào)、波特率、校驗(yàn)位、
數(shù) 據(jù)位、停止位等等。在基礎(chǔ)實(shí)驗(yàn)我們都是配置好寄存器然后
使用。現(xiàn)在我們?cè)?workspace 下找到176
HAL\Target\CC2530EB\drivers 的 hal_uart.c 文件,我們可以看
到里面已經(jīng)包括了串口初始化、發(fā)送、接收等函數(shù),全都封裝好
了;我們只需根據(jù)自己需要修改相關(guān)配置,調(diào)用相應(yīng)的接口函數(shù)
就,可使用串口了。
其具體初始化函數(shù)如下:
void MT_UartInit ()
{
halUARTCfg_t uartConfig;177
/* 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;178
#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
}179
修改完配置參數(shù)之后,我們?cè)?SampleApp_Init( uint8 task_id )函
數(shù)調(diào)用配置好的 MT_UartIn it ()函數(shù);然后,記得在
SampleApp.c 文件開頭的地方將圖所示的頭文件 include 進(jìn)去。
用戶自己添加的應(yīng)用任務(wù)程序在 Zstack 中的調(diào)用過(guò)程是:
main() ---> osal_init_system()---> osalInitTasks()--->
SampleApp_Init()
下面是具體函數(shù):
void SampleApp_Init( uint8 task_id )
{
SampleApp_TaskID = task_id;
SampleApp_NwkState = DEV_INIT;
SampleApp_TransID = 0;
MT_UartInit();//串口初始化
MT_UartRegisterTaskID(task_id);//串口登記任務(wù)號(hào)
}180
緊接著 MT_UartRegisterTaskID(task_id)函數(shù),在其后面添加
函數(shù) HalUARTWrite(0,"UartInit OK\n", sizeof("UartInit OK\n")),
也就是讓系統(tǒng)執(zhí)行這個(gè)任務(wù)了。至此,代碼修改完畢。
|
-
-
串口調(diào)試助手.rar
2019-5-10 10:09 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
389.45 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5
|