娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月01日(星期六)

2020年03月01日 | 【MSP430】MSP430深入研究 之 通用收發(fā)器USART(上)

發(fā)布者:吾道明亮 來源: eefocus關(guān)鍵字:MSP430  通用收發(fā)器  USART 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

通用同步/異步收發(fā)器采用一個(gè)硬件,支持兩種通用串行總線接口模式(msp430f16x支持三種,另外一種是I2C),UART接口(異步模式),SPI接口(同步模式)。我們可以根據(jù)寄存器UxTCL的SYNC來選擇USART的工作模式。在MSP430F149中有兩個(gè)相同的串行總線接口,可以分別或者同事配置成兩種模式。


——摘自《MSP430基礎(chǔ)與實(shí)踐》


這次先介紹通用異步串行接口UART;

figure1. USART(in UART modem)


那大致可以看出他就分為以下幾個(gè)部分:


>串口控制器:UxCTL


>接受控制器:UxRCTL


>發(fā)送控制器:UxTCTL


>波特率控制器:UxBR0 UxBR1 UxMCTL


>收發(fā)使能控制器:UxME


>收發(fā)中斷控制器:UxIE


>標(biāo)志寄存器:UxIFG

figure 2. Flow Chart of USART Initializing 


USART Control Register:

figure 3. USART Control Register


可見SWRST默認(rèn)是為1:意思是USART默認(rèn)為Reset狀態(tài),所以我們在設(shè)置完,只有把SWRST置為0才能使能UART或SPI或I2C;


感覺說這些都是多余浪費(fèi)時(shí)間的,既然是深入研究,那么我們就做點(diǎn)別人很少研究的東西!


關(guān)于波特率的設(shè)置:

figure 4. Baud Rate


波特率的設(shè)置,datasheet上已經(jīng)給出了解釋!可能大家對UxBR0、UxBR1的認(rèn)識(shí)已經(jīng)沒有什么問題了!重要是UxMCTL,我們先來看看UxMCTL的寄存器:

figure 5. Register of UxMCTL


mi : Data of each corresponding modulation bit (1 or 0);


所以不管你把那個(gè)置為1,只要他們的和與8相除,商為接近你想要得到的小數(shù)的值即可!


舉個(gè)例子:MCLK = 8000 000Hz, Baud Rate =  9600;


UxBR + (m0+m1+ ... + m7)/8 = 8000 0000/9600 = 833  + 0.33333


UxBR 設(shè)為 833 不用說了,8 X 0.3333 = 2.666 ≈ 3;那么m0~m7里面只要有3個(gè)1就可以了,所以為了方便期間我們用移位的方法:


unsigned char temp = 0;


for(i=0; i<3; i++)


{


    temp = temp <<1;


    temp |= 1;


}


由于串口通信比較簡單,就沒什么好多說的了!


實(shí)例代碼:


#include

#include "msp430_lib.h"

 

#define BUFF_SIZE 128

typedef struct {

    int recv_len;

    unsigned char recv_buff[BUFF_SIZE];

}UART_RECV;

UART_RECV u_recv;

void uart0_init(int baud_rate)

{

    unsigned char i,temp;

    // 設(shè)為復(fù)位模式,方便多次初始化

    U0CTL |= SWRST;

    // 8個(gè)bit

    U0CTL |= CHAR;

    // 這里波特率設(shè)置

    U0BR1 = (unsigned int)0xff&((NOW_SYSCLK/baud_rate)>>16);

    U0BR0 = (unsigned int)(NOW_SYSCLK/baud_rate)&0xff;

    i = (NOW_SYSCLK - baud_rate*(unsigned int)(NOW_SYSCLK/baud_rate))*8/baud_rate;

    while(i){

        i--;

        temp = temp << 1;

        temp |= 1;

    }

    U0MCTL = temp;

    // 進(jìn)入標(biāo)準(zhǔn)模式

    U0CTL &= ~SWRST;

    // 使能發(fā)送和接收

    U0ME |= UTXE0 + URXE0;

    // 使能接收中斷

    U0IE |= URXIE0;

    // 配置PIN為特殊功能模式

    P3SEL |= BIT7 + BIT6;

    // 使能全局中斷

    _EINT();

    u_recv.recv_len = 0;

}

/*

 * 數(shù)據(jù)發(fā)送函數(shù)

 */

void uart_senddata(unsigned char byte)

{

    while(!(U0IFG & UTXIFG0));

    U0TXBUF = byte;

}

//  中斷處理函數(shù)

#pragma vector=UART0RX_VECTOR

__interrupt void uart_rxirq()

{

    u_recv.recv_buff[u_recv.recv_len++] = U0RXBUF;

}


中斷數(shù)據(jù)接收的地方,我創(chuàng)建了一個(gè)緩沖區(qū),用了一個(gè)全局變量!方便一下子接收很多數(shù)據(jù)!

關(guān)鍵字:MSP430  通用收發(fā)器  USART 引用地址:【MSP430】MSP430深入研究 之 通用收發(fā)器USART(上)

上一篇:第一頁
下一篇:msp430使用OLED實(shí)現(xiàn)數(shù)字鐘

推薦閱讀

  美國市場研究機(jī)構(gòu)Navigant Research日前發(fā)布報(bào)告稱,到2026年,全球?qū)ξ㈦娋W(wǎng)使能技術(shù)的累計(jì)支出將接近1120億美元。下面就隨嵌入式小編一起來了解一下相關(guān)內(nèi)容吧。?2026年全球微電網(wǎng)使能技術(shù)支出累計(jì)近1120億美元  作為聚合和優(yōu)化分布式能源資源(DER)日益普及的技術(shù)之一,微電網(wǎng)平臺(tái)提供了新的彈性水平和可靠性,并可在配電網(wǎng)絡(luò)層面幫助梳理分布式...
MWC大會(huì)將在2月28日正式落下帷幕,作為全球最具影響力的移動(dòng)通訊領(lǐng)域展覽會(huì)之一。MWC是個(gè)大手機(jī)廠商展示自家最新技術(shù)的窗口。本屆MWC同樣為我們帶來眾多黑科技,包括最火的折疊屏、5G,此外,OPPO的10倍變焦、努比亞的α腕表手機(jī)同樣極具吸引力?! ≌郫B屏手機(jī)  2月20日,三星在舊金山舉行的Unpacked發(fā)布上,除了帶來2019年旗艦手機(jī)Galaxy S...
早在去年12月,微軟就宣布Windows 10設(shè)備的新現(xiàn)代流暢設(shè)計(jì)圖標(biāo)。新圖標(biāo)包括用于郵件和日歷,計(jì)算器,照片等的圖標(biāo)設(shè)計(jì)。上周,微軟向Windows Insiders用戶推送系統(tǒng)級別的流暢設(shè)計(jì)新圖標(biāo)?! ‖F(xiàn)在微軟正在向所有Windows 10用戶推出新圖標(biāo)??梢源_認(rèn)正在接收有關(guān)郵件和日歷,電影和電視以及計(jì)算器應(yīng)用程序的更新。并且全新的圖標(biāo)將在Windows ...
最近在研究用低速、低RAM的單片機(jī)來驅(qū)動(dòng)小LCD或TFT彩屏實(shí)現(xiàn)動(dòng)畫效果首先我用一個(gè)16MHz晶振的m0內(nèi)核的8位單片機(jī)nRF51822嘗試驅(qū)動(dòng)一個(gè)1.77寸的4線SPI屏(128X160),發(fā)現(xiàn),刷一屏大約要0.8s左右的時(shí)間,具體收錄在《1、一個(gè)簡單的nRF51822驅(qū)動(dòng)的天馬4線SPI-1.77寸LCD彩屏DEMO》中覺得,如果用72MHz的STM32也許效果會(huì)好很多于是在stm32上做了個(gè)類似的版本,具...

史海拾趣

問答坊 | AI 解惑

求 插卡取電開關(guān) 設(shè)計(jì)的相關(guān)資料!

設(shè)計(jì)一個(gè) 插卡取電的開關(guān) 請大俠們幫忙提供一些資料  謝謝呀…

查看全部問答∨

招資深單片機(jī)開發(fā)工程師

招資深單片機(jī)開發(fā)工程師 從事儀器儀表行業(yè) 以技術(shù)股的形式入股作為股東 具體事項(xiàng)細(xì)談 聯(lián)系人潘先生18967501983…

查看全部問答∨

ERC錯(cuò)誤?

#7 Error   Floating Input Pins On Net NetVA1_3 Pin 電動(dòng)車.Sch(VA1-3 @700,840) Pin 電動(dòng)車.Sch(VB1-1 @700,800) #10 Error   Floating Input Pins On Net NetVA2_3 Pin 電動(dòng)車.Sch(VA2-3 @810,840) Pin 電動(dòng)車.Sch( ...…

查看全部問答∨

i2c總線鎖死問題

最近用了一塊i2c總線的ad芯片,現(xiàn)在遇到這個(gè)情況:芯片一開始正常工作,寫進(jìn)去的值和轉(zhuǎn)化后的值都準(zhǔn)確,工作一端時(shí)間后(時(shí)間不定)就出現(xiàn)了鎖死現(xiàn)象,表現(xiàn)為sda被拉低,會(huì)有亂碼出來(不是正常波形),scl比較正常,但少了一段.以接上拉電阻,10k ...…

查看全部問答∨

請教關(guān)于編譯PUBLIC

請問各位高手 在PB42下改動(dòng)了public 需要怎么編譯?? 謝謝 剛轉(zhuǎn)到CE42上不了解這個(gè) CE50貌似build&sysgen就可以 但是CE42上沒有 謝謝大家!…

查看全部問答∨

打印機(jī)驅(qū)動(dòng)的一個(gè)小問題

當(dāng)我在右擊打印機(jī)點(diǎn)屬性里,選擇了比如A4紙,那這個(gè)信息是存放在哪里的呢,是注冊表還是ini文件還是其它什么地方,具體什么地方?…

查看全部問答∨

大家一起討論,共同進(jìn)步。

目前我在一家北京的公司搞嵌入,有一些bootloader,kernel,驅(qū)動(dòng)方面的經(jīng)驗(yàn)。希望大家能一起討論, 共同進(jìn)步。 我的msn:forever_xf123@hotmail.com…

查看全部問答∨

請教版主

72M的103系統(tǒng),執(zhí)行類似PA0=1或者PA0=0這樣的IO引腳操作語句需要多少納秒?需要精確些,謝謝!…

查看全部問答∨

有沒有用過93C46的

最近想買幾塊93C46,拿51給他讀寫數(shù)據(jù),怎樣能實(shí)現(xiàn)把讀出的數(shù)據(jù)存儲(chǔ)起來?…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 阜阳市| 庆元县| 香河县| 白银市| 喜德县| 渭南市| 新龙县| 阳东县| 碌曲县| 萍乡市| 宁波市| 长白| 泰和县| 麻江县| 汽车| 余姚市| 望城县| 尖扎县| 保德县| 沭阳县| 黄梅县| 佛山市| 大姚县| 博乐市| 康平县| 宿州市| 静乐县| 五原县| 西丰县| 维西| 河北区| 车致| 即墨市| 蕲春县| 苏尼特右旗| 天峻县| 永寿县| 景洪市| 静宁县| 和田市| 施秉县|