久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11732|回復: 1
打印 上一主題 下一主題
收起左側

zigbee串口波特率的設置方法

[復制鏈接]
跳轉到指定樓層
樓主
ID:104287 發表于 2016-1-31 02:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 51黑fan 于 2016-1-31 02:25 編輯

D4~D0為波特率設置:

波特率
指數值
小數部分
2400
6
59
4800
7
59
9600
8
59
14400
8
216
19200
9
59
28800
9
216
38400
10
59
57600
10
216
76800
11
59
115200
11
216
230400
12
216



本次實驗將會學習如果使用串口實現與PC機的通訊。試驗中需要PC機與開發板之間使用USB-RS232線連接。

本次實驗所學習到的寄存器:

CLKCONCMD:時鐘頻率控制寄存器。
D7
D6
D5~D3
D2~D0
32KHZ時間振蕩器選擇
系統時鐘選擇
定時器輸出標記
系統主時鐘選擇
D7位為32KHZ時間振蕩器選擇,,0為32KRC震蕩,1為32K晶振。默認為1。
D6位為系統時鐘選擇。0為32M晶振,1為16M RC震蕩。當D7位為0時D6必須為1。
D5~D3為定時器輸出標記。000為32MHZ,001為16MHZ,010為8MHZ,011為4MHZ,100為2MHZ,101為 1MHZ,110為500KHZ,111為250KHZ。默認為001。需要注意的是:當D6為1時,定時器頻率最高可采用頻率為16MHZ。
D2~D0:系統主時鐘選擇:000為32MHZ,001為16MHZ,010為8MHZ,011為4MHZ,100為2MHZ,101為1MHZ,110為500KHZ,111為250KHZ。當D6為1時,系統主時鐘最高可采用頻率為16MHZ。

CLKCONSTA:時間頻率狀態寄存器。

D7
D6
D5~D3
D2~D0
當前32KHZ時間振蕩器
當前系統時鐘
當前定時器輸出標記
當前系統主時鐘
D7位為當前32KHZ時間振蕩器頻率。0為32KRC震蕩,1為32K晶振。
D6位為當前系統時鐘選擇。0為32M晶振,1為16M RC震蕩。
D5~D3為當前定時器輸出標記。000為32MHZ,001為16MHZ,010為8MHZ,011為4MHZ,100為2MHZ,101為 1MHZ,110為500KHZ,111為250KHZ。
D2~D0為當前系統主時鐘。000為32MHZ,001為16MHZ,010為8MHZ,011為4MHZ,100為2MHZ,101為1MHZ,110為500KHZ,111為250KHZ。

U0CSR:USART0控制與狀態;
D7
D6
D5
D4
D3
D2
D1
D0
模式選擇
接收器使能
SPI主/從模式
幀錯誤狀態
奇偶錯誤狀態
接受狀態
傳送狀態
收發主動狀態
D7為工作模式選擇,0為SPI模式,1為USART模式
D6為UART接收器使能,0為禁用接收器,1為接收器使能。
D5為SPI主/從模式選擇,0為SPI主模式,1為SPI從模式。
D4為幀錯誤檢測狀態,0為無錯誤,1為出現出錯。
D3為奇偶錯誤檢測,0為無錯誤出現,1為出現奇偶校驗錯誤。
D2為字節接收狀態,0為沒有收到字節,1為準備好接收字節。
D1為字節傳送狀態,0為字節沒有被傳送,1為寫到數據緩沖區的字節已經被發送。
D0為USART接收/傳送主動狀態,0為USART空閑,1為USART忙碌。

U0GCR:USART0通用控制寄存器;
D7
D6
D5
D4~D0
SPI時鐘極性
SPI時鐘相位
傳送位順序
波特率指數值
D7為SPI時鐘極性:0為負時鐘極性,1為正時鐘極性;
D6為SPI時鐘相位:
D5為傳送為順序:0為最低有效位先傳送,1為最高有效位先傳送。
D4~D0為波特率設置:
波特率
指數值
小數部分
2400
6
59
4800
7
59
9600
8
59
14400
8
216
19200
9
59
28800
9
216
38400
10
59
57600
10
216
76800
11
59
115200
11
216
230400
12
216

U0BAUD:波特率控制小數部分。(取值參考上表)


源代碼:

  1. #include <ioCC2530.h>
  2. #include <string.h>

  3. #define  uint  unsigned int
  4. #define  uchar unsigned char

  5. //定義控制燈的端口
  6. #define RLED  P1_0
  7. #define GLED  P1_1
  8. //函數聲明
  9. void Delay(uint);
  10. void initUARTSEND(void);
  11. void UartTX_Send_String(char *Data,int len);

  12. char Txdata[25]="FEIBIT  Electronics";

  13. void Delay(uint n)
  14. {
  15.     uint i;
  16.     for(i=0;i<n;i++);
  17.     for(i=0;i<n;i++);
  18.     for(i=0;i<n;i++);
  19.     for(i=0;i<n;i++);
  20.     for(i=0;i<n;i++);
  21. }

  22. void initUARTSEND(void)
  23. {

  24.     CLKCONCMD &= ~0x40;                          //設置系統時鐘源為32MHZ晶振
  25.     while(CLKCONSTA & 0x40);                     //等待晶振穩定
  26.     CLKCONCMD &= ~0x47;                          //設置系統主時鐘頻率為32MHZ
  27.    
  28.   
  29.     PERCFG = 0x00;                //位置1 P0口
  30.     P0SEL = 0x3c;                //P0_2,P0_3,P0_4,P0_5用作串口
  31.     P2DIR &= ~0XC0;                             //P0優先作為UART0

  32.     U0CSR |= 0x80;                //UART方式
  33.     U0GCR |= 9;                       
  34.     U0BAUD |= 59;                //波特率設為19200
  35.     UTX0IF = 0;                                 //UART0 TX中斷標志初始置位0
  36. }

  37. void UartTX_Send_String(char *Data,int len)
  38. {
  39.   int j;
  40.   for(j=0;j<len;j++)
  41.   {
  42.     U0DBUF = *Data++;
  43.     while(UTX0IF == 0);
  44.     UTX0IF = 0;
  45.   }
  46. }

  47. void main(void)
  48. {   
  49.     uchar i;
  50.            P1DIR = 0x03;                 //P1控制LED
  51.     RLED = 1;
  52.     GLED = 0;                //關LED
  53.     initUARTSEND();
  54.     UartTX_Send_String(Txdata,25);            //FEIBIT Electronics
  55.         for(i=0;i<30;i++)Txdata[i]=' ';
  56.         strcpy(Txdata," www.zg4o1577.cn ");       //將UART0 TX test賦給Txdata;
  57.     while(1)
  58.     {
  59.            UartTX_Send_String(Txdata,sizeof(" www.zg4o1577.cn ")); //串口發送數據
  60.             Delay(50000);                                                       //延時
  61.             GLED=!GLED;                                           //標志發送狀態
  62.             Delay(50000);
  63.             Delay(50000);
  64.     }
  65. }
復制代碼




實驗總結:
波特率的設置方法:

波特率由U0GCR中的低5位和U0BAUD決定,例如:
U0GCR |= 9;               
U0BAUD |= 59;

以上代碼將波特率設為19200。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:145805 發表于 2017-11-21 21:40 | 只看該作者
我下了proteus8.6,沒看到stm32的芯片
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年人在线视频 | 99精品视频一区二区三区 | 国产精品日韩欧美一区二区三区 | 日日爱夜夜操 | 香蕉视频1024| 精品亚洲一区二区三区 | 色网站在线免费观看 | 久久久资源 | 午夜免费视频 | 久久久成人网 | 高清18麻豆| 久久成人综合 | 久久国产精品免费一区二区三区 | 超碰在线网站 | 亚洲精品电影网在线观看 | 日本又色又爽又黄的大片 | 国产精品美女 | 波多野结衣一二三区 | 91精品国产综合久久久密闭 | 国产成人精品久久二区二区91 | 成年网站在线观看 | 一区二区三区在线观看视频 | 亚洲精品国产a久久久久久 午夜影院网站 | www.四虎.com | 国产成人网 | 国产一区二区在线免费观看 | 亚洲国产二区 | 免费看一级毛片 | 不卡一区| 99精品国自产在线观看 | 久久新视频 | 一区二区三区四区不卡视频 | 亚洲国产黄色av | 免费观看av网站 | 黄色大片免费网站 | 欧美日韩一区二区在线播放 | 亚洲精品一区二区三区中文字幕 | 国产一区免费 | 日韩在线不卡视频 | 深夜福利亚洲 | 一区二区免费在线观看 |