新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于CC2430和ZigBee2006協(xié)議棧的通信模塊設(shè)計(jì)

基于CC2430和ZigBee2006協(xié)議棧的通信模塊設(shè)計(jì)

作者: 時(shí)間:2010-04-01 來(lái)源:網(wǎng)絡(luò) 收藏

3.1 串口部分程序
(1)串口初始化
主要是設(shè)置halUARTCfg_t結(jié)構(gòu)體成員值:

本文引用地址:http://butianyuan.cn/article/157540.htm

通過(guò)對(duì)halUARTCfg_t賦值,可以設(shè)置波特率、字符數(shù)、數(shù)據(jù)位、停止位、奇偶校驗(yàn)位和硬件流控等。其中call-BackFunc是自定義設(shè)置串口回調(diào)函數(shù),即一旦串口有數(shù)據(jù)傳送,OSAL會(huì)就自動(dòng)轉(zhuǎn)到自定義的回調(diào)函數(shù),執(zhí)行自定義的操作。
(2)串口回調(diào)函數(shù)
首先調(diào)用Hal_UART_RxBufLen(uint8 port)函數(shù)確定串口數(shù)據(jù)的長(zhǎng)度,然后再調(diào)用HalUARTRead(uint8 port,uint8*buf,uintl6 len)讀取串口數(shù)據(jù)到自定義的串口數(shù)據(jù)緩沖區(qū),并調(diào)用osal_set_event(byte task_id,UINTl6 event_flag)函數(shù)發(fā)送事件信號(hào),進(jìn)行數(shù)據(jù)的無(wú)線發(fā)送。
3.2 無(wú)線接收、發(fā)送部分程序
(1)無(wú)線接收
當(dāng)有數(shù)據(jù)通過(guò)無(wú)線發(fā)送到應(yīng)用層時(shí),應(yīng)用層會(huì)發(fā)送1個(gè)AE_INCOMING_MSG_CMD消息事件。
case AF_INCOMING_MSG_CMD:
GenericApp_MessageMSGCB(MSGpkt);
break:
這里表示收到AF_INCOMING_MSG_CMD消息事件,然后調(diào)用收到消息事件的信息處理函數(shù)GenericApp_MessageMSGCB(MSGpkt),開(kāi)始接收數(shù)據(jù)并通過(guò)涮用串口HalUARTWrite(uint8 port,uint8*buf,uintl6 len)寫(xiě)函數(shù)發(fā)送接收到的數(shù)據(jù)。
(2)無(wú)線發(fā)送
在串口回調(diào)函數(shù)中當(dāng)串口有數(shù)據(jù)輸入時(shí),應(yīng)用層會(huì)發(fā)送1個(gè)GENERICAPP_SEND_MSG_EVT消息事件。

調(diào)用GenericApp_SendThmMessage()數(shù)據(jù)發(fā)送函數(shù),具體到TI/Chipcon公司所提供的棧中即為AF_DataRequest()函數(shù),具體形式如下:


結(jié)語(yǔ)
本文以為主體了無(wú)線的硬件,并選用TI/Chipcon公司免費(fèi)提供的棧作為軟件開(kāi)發(fā)平臺(tái)。通過(guò)實(shí)驗(yàn)驗(yàn)證,的硬件節(jié)點(diǎn)基本達(dá)到了項(xiàng)目要求。經(jīng)調(diào)試,串口能夠正確地接收和發(fā)送數(shù)據(jù),能夠?qū)崿F(xiàn)多個(gè)無(wú)線節(jié)點(diǎn)(1個(gè)協(xié)調(diào)器,3個(gè)終端設(shè)備)在50 m左右的和數(shù)據(jù)傳輸,并通過(guò)計(jì)算機(jī)串口調(diào)試軟件測(cè)試正確。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉