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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5840|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

基于msp430f5529的藍(lán)牙遙控小車實(shí)踐

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:955176 發(fā)表于 2021-7-23 21:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這個(gè)是我在準(zhǔn)備電賽的時(shí)候小師傅布置的任務(wù),這個(gè)模塊主要是要搞懂UART通信模塊的原理,然后對(duì)藍(lán)牙通信的原理有所了解即可。
一、 UART串口通信
固定代碼模式:
{
配置UART寄存器
}
       #pragma vector = USCI_A1_VECTOR
__interrupt void USCI_ISR()
{
       內(nèi)部程序;
}
1、配置UCAxCTL0        //USCI_Ax Control Register 0
        UCPEN                啟用奇偶校驗(yàn)功能寄存器(一般情況下不啟用奇偶校驗(yàn))
0 關(guān)閉奇偶校驗(yàn);
1 打開奇偶校驗(yàn),將生成奇偶校驗(yàn)位(UCAxTXD)
    注意:(UCAxRXD). In address-bit multiprocessor mode, the address bit is included in the parity calculation.
       UCPAR                對(duì)奇偶校驗(yàn)項(xiàng)的選擇。當(dāng)禁用奇偶校驗(yàn)時(shí),不使用UCPAR。
                                                  0b = Odd parity
1b = Even parity
       UCMSB                MSB首先選擇。(控制 接收和發(fā)射移位寄存器 的方向,一般選擇0,因?yàn)槟J(rèn)值/模式為0(LSB first),故不用設(shè)置
                                                  0b = LSB first
        1b = MSB first
       UC7BIT                字符長(zhǎng)度。選擇7位或8位字符長(zhǎng)度,即串口發(fā)送的數(shù)據(jù)長(zhǎng)度,默認(rèn)值/模式0(8位),故不用設(shè)置。
                                              0       8位   1    7位
       UCSPB                選擇停止位的個(gè)數(shù)。默認(rèn)值/模式為0(1位停止位),故不用設(shè)置。
                                             0 一位停止位                        1 兩位停止位
       UCMODEx        USCI模式選擇。即選擇USCI的工作模式,UCMODEx位在UCSYNC=0時(shí)選擇異步模式。因?yàn)楸灸K是學(xué)習(xí)UART,所以USCI要設(shè)置為UART mode,同時(shí)UCMODEx默認(rèn)值/模塊為00b,所以在使用UART模塊時(shí)不用設(shè)置此寄存器。
      00b = UART mode        
      01b = Idle-line multiprocessor mode
      10b = Address-bit multiprocessor mode
      11b = UART mode with automatic baud-rate detection
        UCSYNC                同步或異步模式啟用模塊。默認(rèn)值/模塊為0(啟用異步模式),故在使用異步UART時(shí)不用設(shè)置。
                                                0 啟用異步模式                1 啟用同步模式
         2、配置UCAxCTL1 寄存器                //USCI_Ax Control Register 1
                在使用UART時(shí)首先需復(fù)位UCAxCTL1、選擇時(shí)鐘源,再配置其他寄存器,最后取消對(duì)UCAxCTL1的復(fù)位。
                        例如:      UCA1CTL1 |=  UCSWRST;   //復(fù)位USCI_AX
            UCA1CTL1 |=  UCSSEL_1;    //選擇時(shí)鐘源SMCLK ACLK
            UCA1BR0 = 0x03;    // 32768Hz 9600 波特率為9600
            UCA1BR1 = 0x00;    // 32768Hz 9600
                                               UCA1MCTL |= UCBRS_3 + UCBRF_0;  
                                                           UCA1CTL1 &= ~UCSWRST;     //清除復(fù)位        
       UCSSELx                選擇USCI時(shí)鐘源。這些位選擇BRCLK源時(shí)鐘。
                                           00b = UCAxCLK (external USCI clock)
                                           01b = ACLK
                                           10b = SMCLK
                                           11b = SMCLK
                                           UXRXEIE
                                           UCBRKIE
                                           UCDORM
                                           UCTXADDR
                            UCTXBRK
                            UCSWRST
       3、配置UCAxBR0                Low byte of clock prescaler setting of the baud-rate generator. The 16-bit value
of (UCAxBR0 + UCAxBR1 × 256) forms the prescaler value UCBRx.
波特率發(fā)生器的時(shí)鐘預(yù)壓器設(shè)置的低字節(jié)。16位值(UCAxBR0+UCAxBR1×256)形成預(yù)壓算器值UCBRx。
                       查找數(shù)據(jù)手冊(cè),例:UCA1BR0 = 0x03;
      4、配置UCAxBR1        High byte of clock prescaler setting of the baud-rate generator. The 16-bit value
of (UCAxBR0 + UCAxBR1 × 256) forms the prescaler value UCBRx.
波特率發(fā)生器的時(shí)鐘壓力機(jī)設(shè)置的高字節(jié)。16位值(UCAxBR0+UCAxBR1×256)形成預(yù)壓算器值UCBRx。
查找數(shù)據(jù)手冊(cè), 例:UCA1BR1 = 0x00;
     5、配置UCAxMCTL  例:UCA1MCTL |= UCBRS_3 + UCBRF_0;
     UCBRFx                第一個(gè)調(diào)制階段的選擇。這些比特確定了當(dāng)UCOS16=1時(shí)的BITCLK16的調(diào)制模式。被UCOS16=0忽略
     UCBRSx                第二個(gè)調(diào)制階段的選擇。這些位決定了BITCLK的調(diào)制模式。表36-2給出了調(diào)制模式。
                        UCOS16        Oversampling mode enabled
0b = Disabled
1b = Enabled
      6、UCAxSTAT((●'◡'●)這個(gè)沒用到我就沒有寫筆記)
      7、UCAxRXBUF                數(shù)據(jù)接收緩沖區(qū)
      8、UCAxTXBUF                數(shù)據(jù)發(fā)送緩沖區(qū)
               
      UCAxIE
       UCTXIE                關(guān)閉啟用傳輸中斷,默認(rèn)值/模式為0(關(guān)閉傳輸中斷), 1 打開傳輸中斷
       UCRXIE                關(guān)閉啟用接收中斷,默認(rèn)值/模式為0(關(guān)閉接收中斷), 1 打開接收中斷
二、代碼
//藍(lán)牙模塊
void set_uart_registers()
{
        P4SEL |= BIT4+BIT5;
        UCA1CTL1 |= UCSWRST;
        UCA1CTL1 |= UCSSEL_1;        //ACLK 副時(shí)鐘

        UCA1BR0 = 0x03;
        UCA1BR1 = 0x00;                //32768HZ  9600baud
        UCA1MCTL |= UCBRS_3 + UCBRF_0;

        UCA1CTL1 &=~ UCSWRST;
        UCA1IE |= UCRXIE;        //open interrupt of

        _EINT();
}

#pragma vector = USCI_A1_VECTOR
__interrupt void USCI_ISR()
{
        //UCA1TXBUF = UCA1RXBUF;
        switch(__even_in_range(UCA1IV,4))
        {
                case 0:break;                                       // Vector 0 - No interrupt
                case 2:                                           // Vector 2 - RXIFG
                    BUF = UCA1RXBUF;
                    UCA1TXBUF = UCA1RXBUF;
              if(BUF == 'A')
                {
                      P6OUT |=  BIT0;
                      P6OUT &=~ BIT1;
                      P6OUT |=  BIT2;
                      P6OUT &=~ BIT3;
                }

                if(BUF == 'B')
                {
                                P6OUT &=~ BIT0;
                                P6OUT |=  BIT1;
                                P6OUT &=~ BIT2;
                                P6OUT |=  BIT3;
                }

                if(BUF == 'C')
                {
                                P6OUT &=~ BIT0;
                                P6OUT |=  BIT1;
                                P6OUT |=  BIT2;
                                P6OUT &=~ BIT3;
                }

                if(BUF == 'D')
                {
                                P6OUT |=  BIT0;
                                P6OUT &=~ BIT1;
                                P6OUT &=~ BIT2;
                                P6OUT |=  BIT3;
                }

                if(BUF == 'E')
                {
                                P6OUT &=~ BIT0;
                                P6OUT &=~ BIT1;
                                P6OUT &=~ BIT2;
                                P6OUT &=~ BIT3;
                }

                if(BUF =='F')
                {
                        P1OUT ^= BIT0;
                }

                if(BUF == '1')
                {
                        P4OUT ^= BIT7;
                }
                break;
            case 4:break;

            default: break;
        }

}

TI.rar

556.61 KB, 下載次數(shù): 120, 下載積分: 黑幣 -5

原代碼

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:897756 發(fā)表于 2021-7-25 15:04 | 只看該作者
__even_in_range(UCA1IV,4)是哪里的呢?
回復(fù)

使用道具 舉報(bào)

板凳
ID:954229 發(fā)表于 2021-7-28 15:09 | 只看該作者
143838 發(fā)表于 2021-7-25 15:04
__even_in_range(UCA1IV,4)是哪里的呢?

頭文件,作用是加快switch的運(yùn)行速度,
回復(fù)

使用道具 舉報(bào)

地板
ID:825705 發(fā)表于 2021-10-26 11:26 | 只看該作者
為什么連上藍(lán)牙無法控制呢
回復(fù)

使用道具 舉報(bào)

5#
ID:964581 發(fā)表于 2022-7-20 19:50 | 只看該作者
樓主,這個(gè)接什么驅(qū)動(dòng)呢?
回復(fù)

使用道具 舉報(bào)

6#
ID:1040761 發(fā)表于 2022-7-27 23:00 | 只看該作者
用HC5藍(lán)牙可以連接嘛?
回復(fù)

使用道具 舉報(bào)

7#
ID:1137822 發(fā)表于 2024-11-27 16:55 | 只看該作者
HC2可以嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品视频在线观看 | 美女黄网 | 精品国产一区二区三区久久久久久 | 国产一级久久久久 | 日本视频中文字幕 | 久久国产精品久久久久 | 伊人性伊人情综合网 | 天天宗合网 | 日韩一区二区三区视频 | 色婷婷久久久久swag精品 | 在线免费看黄 | 久久久国产一区 | 欧美日韩在线免费 | 91精品国产乱码久久久久久久久 | 午夜在线精品偷拍 | 亚洲高清视频在线观看 | 黄色大片毛片 | 热99在线 | 精品欧美 | 在线观看免费av网 | 午夜a v电影 | 中文字幕亚洲专区 | 国产精品一区二区久久 | 人人人干 | 日本免费黄色 | 欧美一区二区三区的 | 日本午夜精品 | 天色综合网 | 九九视频在线观看视频6 | 国产不卡一区 | 国产三级大片 | 中文字幕 国产精品 | 欧美一区成人 | 亚洲成人一区二区三区 | 亚洲国产91| 九九亚洲 | 亚洲在线成人 | 精品视频一二区 | 玖玖操 | 九九九精品视频 | 欧美在线日韩 |