ZigBee TI ZStack CC2530 3.18 串口01-发送
(配套源碼、軟件、開發板等資源,可移步博客同名QQ群/TB店鋪:拿破侖940911)
這一節,基于《ZigBee CC2530 Z-Stack 06 創建基于Z-Stack的全新工程》一節中創建的全新工程ProjectApp進行進一步實驗,實現調用Z-Stack中現成的串口驅動函數實現串口發送功能,具體效果為系統一上電CC2530芯片即通過串口0打印出“hello world !\r\n”。
CC2530芯片的所有片上外設中,總共有2個串口,分別稱為串口0和串口1。在實際項目開發當中,一般我們會將串口0用作“調試串口”,用于打印一些提示信息;而將串口1用于與外圍硬件設備對接,實現實際的項目需求。本節中我們將通過串口0實現字符串打印功能。
ProjectApp創建成功后,僅是通過編譯測試了工程創建是否成功,實際上并沒有做任何實質性的更改。因此我們實際現在才算是真正基于Z-Stack進行開發!為了使用Z-Stack中自帶的串口驅動程序,實現串口發送功能,具體操作步驟如下:
1、協議棧中MT層相關的代碼全都是基于CC2530的串口寫的,所以我們在寫串口程序時,最好的辦法就是參考MT層對應代碼來寫我們自己的串口程序;具體是參考MT_UART.c中的MT_UartInit( )函數代碼和MT_UART.h中相關的宏定義,來實現我們的uart0.c和uart0.h兩個文件,兩個文件具體代碼如下:
文件uart0.c中代碼:
文件uart0.h中代碼:
關于具體為何uart0.c和uart0.h兩個文件的格式如此,是嵌入式C語言模塊化編程的基礎,參考協議棧中類似的文件依葫蘆畫瓢即可,此處就不再贅述~
2、往工程中APP分組下添加我們參考MT_UART.c和MT_UART.h寫成的uart0.c和uart0.h兩個文件:將uart0.c和uart0.h兩個文件放到C:\Texas Instruments\ZStack-CC2530-2.5.1a\Projects\zstack\Samples\ProjectApp\Source目錄下,然后按照下圖所示將兩個文件添加到APP分組下即可;
3、由于協議棧中MT的相關代碼全都是基于串口寫的,而我們又是參考MT_UART相關代碼寫的,所以需要將協議棧中原本與MT層相關的代碼全部注釋掉。具體操作如下圖所示:
右擊工程名,進入“Options”選項后,找到如下圖中所示的“Defined symbols”,其中總共有5個預編譯選項,依次為:ZTOOL_P1、MT_TASK、MT_SYS_FUNC、MT_ZDO_FUNC、LCD_SUPPORTED=DEBUG;
前4個均與MT層相關,所以均需注釋掉,在需要注釋的預編譯選項前面加上“x”即可;
第5個預編譯選項是與LCD液晶有關的,由于我們一般不使用TI原裝的LCD,所以一般也會將這個注釋掉,則工程中相關的代碼都不會被編譯!
4、此外,協議棧中還有一個名為hal_board_cfg.h的文件,里面定義了與協議棧相關的大多數硬件的使能宏定義,這邊我們暫時只關心HAL_LCD和HAL_UART,我們想屏蔽LCD相關的所有代碼,并使能與UART相關的底層驅動程序,文件所處位置及需修改位置如下圖所示,需要將HAL_LCD和HAL_UART的宏定義分別修改為FALSE和TRUE;
5、至此,基于Z-Stack協議棧的串口驅動程序的發送部分就基本全部完成,就差最后來檢驗一下串口是否能夠正常發送了!
雙擊打開ProjectApp.c文件,在ProjectApp_Init( )函數中最后的位置加入如下兩行代碼:
Uart0_Init(HAL_UART_BR_115200);HalUARTWrite(HAL_UART_PORT_0,"hello world !\r\n",sizeof("hello world !\r\n")-1);我們既然在ProjectApp.c文件中調用了uart0.c文件中的函數,則一定要在ProjectApp.c中加入對應的頭文件——uart0.h!
具體實現代碼如下:
#include "uart0.h"最后點擊“編譯”圖標,完成對整個工程的編譯,順利的話,肯定是 0 error(s), 0 warning(s)!點擊IAR界面上方“Download and Deubug”圖標,將程序下載到CC2530芯片中(下載之前,請保證下載器、串口線和電腦三者已經連接正確!),如下圖所示:
并自動進入調試界面,如下圖所示:
連上串口調試助手,選擇正確的串口配置后打開串口,點擊上圖中所示“全速運行”圖標后,就可以看到串口調試助手收到了來自CC2530串口0打印的數據,正好15個字節!如下圖所示:
(配套源碼、軟件、開發板等資源,可移步博客同名QQ群/TB店鋪:拿破侖940911)
總結
以上是生活随笔為你收集整理的ZigBee TI ZStack CC2530 3.18 串口01-发送的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【POI】对于POI无法处理超大xls等
- 下一篇: Windows 10强推新功能:能否让你