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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 11785|回復: 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," m.zg4o1577.cn ");       //將UART0 TX test賦給Txdata;
  57.     while(1)
  58.     {
  59.            UartTX_Send_String(Txdata,sizeof(" m.zg4o1577.cn ")); //串口發送數據
  60.             Delay(50000);                                                       //延時
  61.             GLED=!GLED;                                           //標志發送狀態
  62.             Delay(50000);
  63.             Delay(50000);
  64.     }
  65. }
復制代碼




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

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

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


回復

使用道具 舉報

ID:145805 發表于 2017-11-21 21:40 | 顯示全部樓層
我下了proteus8.6,沒看到stm32的芯片
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品视频免费 | 日韩精品区 | 欧美天天| 一级黄色性生活片 | 理论片中文字幕 | 色哟哟一区二区三区 | 白白色免费视频 | 美国一级大黄一片免费中文 | 中文字幕一区二区在线播放 | 日韩一区二区在线播放 | 欧美自拍视频 | 毛片av在线| 国产精品一区二区三 | www欧美| 日本一区二区三区在线视频 | 国产乱码一区二区 | 日韩欧美国产成人 | 欧美做受喷浆在线观看 | 香蕉视频一区二区三区 | 欧美一区免费 | 天天爽天天爽 | 99re久久 | 国产日韩精品一区二区 | 在线视频91 | 一区二区影院 | 久久久一区二区 | 日韩av成人在线 | 中文字幕黄色片 | 天天搞天天搞 | 四虎在线播放 | 午夜精品久久久久久久99黑人 | 夜夜骑夜夜操 | 成人激情视频在线观看 | 亚洲综合激情 | 欧美一级淫片免费视频黄 | 亚洲五月婷婷 | 亚洲视频在线观看 | 日韩视频在线观看免费 | 久久久久久久免费视频 | 99re在线 | 精品久久久久久久久久久久久久久久 |