串口通信,發送字符串
模塊通過串口向安卓發送數據
1、往CC2530模塊里面下載程序 打開 iar810,再用 iar810 去打開工程,在“2014-5-1-NJZBcc2530\2.基礎實驗源碼\9.串口通訊-發送字符串”文件夾內,打開之后,rebuild all,然后再 debug(如果不會,請看基礎實驗的第一個實驗),然后按仿真器的復位按鈕。程序就運行起來了。
2、安裝APK到安卓設備(需要安卓 3.1以上)
安卓 APK 在“2014-8-1-NJZBcc2530\2.基礎實驗源碼\9.串口通訊-發送字符串”目錄下,請大家自己把這個 apk:“WchUsbDriver.apk”安裝到你的安卓設備。
0.jpg (26.4 KB, 下載次數: 112)
下載附件
2017-12-18 01:00 上傳
3、安卓顯示cc2530通過串口送來的數據:
如下順序連接硬件:
安卓—OTG 數據線————套件中的 usb 數據線—模塊 把安卓和模塊連接:
0.jpg (23.9 KB, 下載次數: 87)
下載附件
2017-12-18 01:00 上傳
如上連接后,在你的安卓打開你剛安裝的 apk 程序,波特率選擇115200,然后點擊 config 按鈕,
就會在數據接受區,看到模塊送來的“Hello Zigbee”字符了。
0.jpg (29.35 KB, 下載次數: 109)
下載附件
2017-12-18 01:01 上傳
4、實驗分析
本實驗相關電路:
0.jpg (26.17 KB, 下載次數: 131)
下載附件
2017-12-18 01:01 上傳
P0_2、 P0_3 配置為外設功能時: P0_2為 RX, P0_3為 TX. USART0 和 USART1 是串行通信接口,它們能夠分別運行于異步 UART 模式或者同步 SPI 模式。兩個 USART 具有同樣的功能,可以設置在單獨的 I/O 引腳。
實驗相關寄存器
相關寄存器 UxCSR、UxCSR、UxGCR、UxBUF、UxBAUD、CLKCONCMD、CLKCONSTA 如下表
所示: (見附件)
0.jpg (45.64 KB, 下載次數: 93)
下載附件
2017-12-18 01:02 上傳
CC2530配置串口的一般步驟:
1、 配置 IO,使用外部設備功能。此處配置 P0_2 和 P0_3 用作串口 UART0
2、 配置相應串口的控制和狀態寄存器。
3、 配置串口工作的波特率。
寄存器具體配置如下:
PERCFG = 0x00; //位置 1 P0 口
P0SEL = 0x0c; //P0_2,P0_3用作串口(外部設備功能)
P2DIR &= ~0XC0; //P0優先作為UART0
U0CSR |= 0x80; //設置為UART方式
U0GCR |= 11;
U0BAUD |= 216; //波特率設為115200 根據上面表中獲得的數據
UTX0IF = 0; //UART0 TX 中斷標志初始置位 0
源碼分析,大家可以在 IAR 中看下注釋。
九、串口通信----發送字符
1、打開 iar810,再用 iar810去打開工程,在“2014-5-1-NJZBcc2530\2.基礎實驗源碼\9.串口通訊-發送字符串”
文件夾內,打開之后,debug,然后按仿真器的復位按鈕。程序就運行起來了。
2、用usb 數據線直接把模塊鏈接到電腦
0.jpg (45.43 KB, 下載次數: 88)
下載附件
2017-12-18 01:03 上傳
如上圖操作后,就會在電腦里面生成一個 com口,可以在設備管理器中看的到: +
0.jpg (32.89 KB, 下載次數: 106)
下載附件
2017-12-18 01:03 上傳
然后打開串口助手(在“cc2530模塊資料(天線桿版本--2013-9-25)\8.軟件工具\串口調試助手 V2.2”):
0.jpg (60.09 KB, 下載次數: 99)
下載附件
2017-12-18 01:04 上傳
本實驗相關電路:
0.jpg (26.1 KB, 下載次數: 93)
下載附件
2017-12-18 01:04 上傳
P0_2、P0_3配置為外設功能時:P0_2為RX, P0_3為TX. USART0和USART1是串行通信接口,它們能夠分
別運行于異步 UART模式或者同步SPI 模式。兩個 USART具有同樣的功能,可以設置在單獨的 I/O 引腳。
0.jpg (18.91 KB, 下載次數: 88)
下載附件
2017-12-18 00:59 上傳
- /****************************************************************************
- * 文 件 名: main.c
- * 作 者: Andy
- * 修 訂: 2013-01-08
- * 版 本: 1.0
- * 描 述: 設置串口調試助手波特率:115200bps 8N1
- * 會收到CC2530發過來的:Hello Zigbee
- ****************************************************************************/
- #include <ioCC2530.h>
- #include <string.h>
- typedef unsigned char uchar;
- typedef unsigned int uint;
- #define TX_SIZE 20
- #define TX_STRING "Hello Zigbee "
- char TxData[TX_SIZE]; //存儲發送字符串
- /****************************************************************************
- * 名 稱: DelayMS()
- * 功 能: 以毫秒為單位延時 16M時約為535,32M時要調整,系統時鐘不修改默認為16M
- * 入口參數: msec 延時參數,值越大延時越久
- * 出口參數: 無
- ****************************************************************************/
- void DelayMS(uint msec)
- {
- uint i,j;
-
- for (i=0; i<msec; i++)
- for (j=0; j<1070; j++);
- }
- /****************************************************************************
- * 名 稱: InitUart()
- * 功 能: 串口初始化函數
- * 入口參數: 無
- * 出口參數: 無
- ****************************************************************************/
- void InitUart(void)
- {
- PERCFG = 0x00; //外設控制寄存器 USART 0的IO位置:0為P0口位置1
- P0SEL = 0x0c; //P0_2,P0_3用作串口(外設功能)
- P2DIR &= ~0XC0; //P0優先作為UART0
-
- U0CSR |= 0x80; //設置為UART方式
- U0GCR |= 11;
- U0BAUD |= 216; //波特率設為115200
- UTX0IF = 0; //UART0 TX中斷標志初始置位0
- }
- /****************************************************************************
- * 名 稱: UartSendString()
- * 功 能: 串口發送函數
- * 入口參數: Data:發送緩沖區 len:發送長度
- * 出口參數: 無
- ****************************************************************************/
- void UartSendString(char *Data, int len)
- {
- uint i;
-
- for(i=0; i<len; i++)
- {
- U0DBUF = *Data++;
- while(UTX0IF == 0);
- UTX0IF = 0;
- }
- }
- /****************************************************************************
- * 程序入口函數
- ****************************************************************************/
- void main(void)
- {
- CLKCONCMD &= ~0x40; //設置系統時鐘源為32MHZ晶振
- while(CLKCONSTA & 0x40); //等待晶振穩定為32M
- CLKCONCMD &= ~0x47; //設置系統主時鐘頻率為32MHZ
-
- InitUart(); //調置串口相關寄存器
- memset(TxData, 0, TX_SIZE); //數據清0
- memcpy(TxData, TX_STRING, sizeof(TX_STRING)); //復制發送字符串到TxData
-
- while(1)
- {
- UartSendString(TxData, sizeof(TX_STRING)); //串口發送數據
- DelayMS(1000); //延時
- }
- }
復制代碼
全部資料51hei下載地址:
9.串口通訊-發送字符串.rar
(3.21 MB, 下載次數: 49)
2017-12-17 22:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|