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

標(biāo)題: zigbee串口波特率的設(shè)置方法 [打印本頁]

作者: 51黑fan    時(shí)間: 2016-1-31 02:24
標(biāo)題: zigbee串口波特率的設(shè)置方法
本帖最后由 51黑fan 于 2016-1-31 02:25 編輯

D4~D0為波特率設(shè)置:

波特率
指數(shù)值
小數(shù)部分
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



本次實(shí)驗(yàn)將會學(xué)習(xí)如果使用串口實(shí)現(xiàn)與PC機(jī)的通訊。試驗(yàn)中需要PC機(jī)與開發(fā)板之間使用USB-RS232線連接。

本次實(shí)驗(yàn)所學(xué)習(xí)到的寄存器:

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

CLKCONSTA:時(shí)間頻率狀態(tài)寄存器。

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

U0CSR:USART0控制與狀態(tài);
D7
D6
D5
D4
D3
D2
D1
D0
模式選擇
接收器使能
SPI主/從模式
幀錯(cuò)誤狀態(tài)
奇偶錯(cuò)誤狀態(tài)
接受狀態(tài)
傳送狀態(tài)
收發(fā)主動狀態(tài)
D7為工作模式選擇,0為SPI模式,1為USART模式
D6為UART接收器使能,0為禁用接收器,1為接收器使能。
D5為SPI主/從模式選擇,0為SPI主模式,1為SPI從模式。
D4為幀錯(cuò)誤檢測狀態(tài),0為無錯(cuò)誤,1為出現(xiàn)出錯(cuò)。
D3為奇偶錯(cuò)誤檢測,0為無錯(cuò)誤出現(xiàn),1為出現(xiàn)奇偶校驗(yàn)錯(cuò)誤。
D2為字節(jié)接收狀態(tài),0為沒有收到字節(jié),1為準(zhǔn)備好接收字節(jié)。
D1為字節(jié)傳送狀態(tài),0為字節(jié)沒有被傳送,1為寫到數(shù)據(jù)緩沖區(qū)的字節(jié)已經(jīng)被發(fā)送。
D0為USART接收/傳送主動狀態(tài),0為USART空閑,1為USART忙碌。

U0GCR:USART0通用控制寄存器;
D7
D6
D5
D4~D0
SPI時(shí)鐘極性
SPI時(shí)鐘相位
傳送位順序
波特率指數(shù)值
D7為SPI時(shí)鐘極性:0為負(fù)時(shí)鐘極性,1為正時(shí)鐘極性;
D6為SPI時(shí)鐘相位:
D5為傳送為順序:0為最低有效位先傳送,1為最高有效位先傳送。
D4~D0為波特率設(shè)置:
波特率
指數(shù)值
小數(shù)部分
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:波特率控制小數(shù)部分。(取值參考上表)


源代碼:

  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. //函數(shù)聲明
  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;                          //設(shè)置系統(tǒng)時(shí)鐘源為32MHZ晶振
  25.     while(CLKCONSTA & 0x40);                     //等待晶振穩(wěn)定
  26.     CLKCONCMD &= ~0x47;                          //設(shè)置系統(tǒng)主時(shí)鐘頻率為32MHZ
  27.    
  28.   
  29.     PERCFG = 0x00;                //位置1 P0口
  30.     P0SEL = 0x3c;                //P0_2,P0_3,P0_4,P0_5用作串口
  31.     P2DIR &= ~0XC0;                             //P0優(yōu)先作為UART0

  32.     U0CSR |= 0x80;                //UART方式
  33.     U0GCR |= 9;                       
  34.     U0BAUD |= 59;                //波特率設(shè)為19200
  35.     UTX0IF = 0;                                 //UART0 TX中斷標(biāo)志初始置位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;                //關(guān)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 ")); //串口發(fā)送數(shù)據(jù)
  60.             Delay(50000);                                                       //延時(shí)
  61.             GLED=!GLED;                                           //標(biāo)志發(fā)送狀態(tài)
  62.             Delay(50000);
  63.             Delay(50000);
  64.     }
  65. }
復(fù)制代碼




實(shí)驗(yàn)總結(jié):
波特率的設(shè)置方法:

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

以上代碼將波特率設(shè)為19200。



作者: WZQONE    時(shí)間: 2017-11-21 21:40
我下了proteus8.6,沒看到stm32的芯片




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久9久| www久久国产 | 久久精品国产亚洲一区二区 | 国产清纯白嫩初高生视频在线观看 | 国产一区二区在线免费视频 | 成人中文字幕在线观看 | 亚洲高清在线视频 | 国产一区二区自拍 | 日本在线观看视频 | 黑人粗黑大躁护士 | 99视频入口 | 亚洲一区二区三区免费在线 | 国产精品国产a级 | 精品国产欧美一区二区三区成人 | 欧美99久久精品乱码影视 | 欧美美女被c | 欧美中文字幕一区二区三区亚洲 | h视频在线观看免费 | 色综合一区 | 欧美精品久久 | 国产乱码一二三区精品 | 午夜精品久久久久久久久久久久久 | 久久久久久久一区 | 中国一级毛片免费 | 国产综合在线视频 | 日本黄色免费视频 | 国产午夜三级一区二区三 | 日韩欧美一区二区三区免费看 | 在线播放国产一区二区三区 | 一级高清视频 | 日韩视频区 | 天天操夜夜操 | 91精品国产自产在线老师啪 | 中文字幕日韩欧美一区二区三区 | 久久久久久久一区二区三区 | 日韩一区二区在线看 | 中文字幕日韩一区 | 亚洲在线久久 | 国产视频精品在线观看 | 成人日韩 | 国产欧美精品 |