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

歷史上的今天

今天是:2025年05月05日(星期一)

2018年05月05日 | 個人總結之MSP430F5510串口通訊(485)

發布者:之敖趙先生 來源: eefocus關鍵字:MSP430F5510  串口通訊 手機看文章 掃描二維碼
隨時隨地手機看文章

1.首先先介紹一下USCI模塊

通用串行通信接口(USCI)模塊支持多種異步通信模式。不同的 USCI 模塊支持不同的模式。

每一個 USCI 模塊以不同的字母命名。例如,USCI_A 不同于 USCI_B 等等。如果不止一個相同的USCI 模塊被安裝在一個設備上,這些模塊以不同的數字命名。例如,一個設備有兩個 USCI_A模塊,它們可以命名 USCI_A0 和 USCI_A1。參見設備明細表去確定各種 USCI 模塊,如果需要,它們可以安放在任何設備上。

USCI_Ax 模塊支持:

  UART 模式

  脈沖調整的 IRDA 通信

  自動波特率檢測的 LIN 通信

  SPI 模式

USCI_Bx 模塊支持:

  I2C 模式

  SPI 模式

2. USCI介紹:UART

 在異步模式中,USCI_Ax 模塊是通過兩個外部引腳連接 MSP430 到外部系統,分別是 UCAXRXD和 UCAXTXD。當 UCSYNC位被清零時 UART 模式被選擇。

在 UART 模式下,USCI 的發送和接收字符每次一位的異步速率到另一個設備。字符傳輸的

時間取決于 USCI 的波特率選擇。傳輸和接收功能使用相同的波特率。

 

3 . USCI 初始化和復位

USCI 在 PUC 后或者通過設置 UCSWRST 位。在 PUC 后,UCSWRST 位自動置位,保持 USCI 在復位狀態。當置位時,UCSWRST 位復位 UCAXRXIE,UCAXTXIE,UCAXRXIFG,UCRXERR,UCBRK,UCPE,UCOE,UCFE,UCSTOE 和 UCBTOE 位并置 UCAXTXIFG 位。清除 UCSWRST 位釋放 UCSI 的操作。

注解:初始化或者從新配置 USCI 模塊

相應的 USCI 初始化/重配置的過程如下:

設置 UCSWRST

UCSWRST=1 時初始化所有的 UCSI 寄存器(包括 UCAXCTL1)

配置端口

軟件清除 UCSWRST

通過 UCAXRXIE 和/或 UCAXTXIE 允許中斷(可選)

由于硬件原理圖為

 

/*************************************************

函數名:USCI_A1_UART_init

函數功能:初始化串口

函數參數:無

函數返回值:無

說明:p4.4為TX_485  p4.5為RX_485

*************************************************/

//初始化串口A1

void USCI_A1_UART_init(void)

{

  DRE485_out;

  P4SEL |= BIT4 + BIT5;                       //p4.4為TX_485  p4.5為RX_485

  UCA1CTL1 |= UCSWRST;                        //reset復位

  

  UCA1CTL1 |= UCSSEL__ACLK;                   // CLK = ACLK 驅動時鐘選擇ACLK

  UCA1BR0 = baud_l;                           //波特率為9600bps

  UCA1BR1 = baud_h;                              

  UCA1MCTL = UCBRS_3+UCBRF_0;                 //微調寄存器

  

  UCA1IFG &= ~UCRXIFG;                        //RX中斷未決                 

  UCA1CTL1 &= ~UCSWRST;                       //初始化UART狀態機

  

  UCA1IE |= UCRXIE;                           //RX使能  

}

#define CPU_F ((double)8000000)   

#define baud           9600                                //設置波特率的大小

#define baud_setting   (uint)((ulong)CPU_F/((ulong)baud))  //波特 率計 算公 式

#define baud_h         (uchar)(baud_setting>>8)            //提 取 高 位

#define baud_l         (uchar)(baud_setting)               //低位

#define DRE485_out     P4DIR |= BIT6     //連接485芯片的DE,RE端口的IO設置為輸出狀態

4.發送和接收

UCRXBUFx 0-7 位 接受數據緩存被用戶直接使用,包含從接收移位寄存器接收的最后一個字

符。讀 UCAXRIFG 復位接收誤差位,即 UCADDR 或 UCIDLE 位以及 UCAXRXIFG。在 7 位數據模式中,UCAXRXBUF 通過 LSB調整使 MSB 總是復位。

UCTXBUFx 0-7 位  發送數據緩存被用戶直接使用,保持數據到移出發送移位寄存器并發送到

UCAXTXD 上。寫到發送數據緩存可清除 UCAXTXIFG。UCAXTXBUF 的 MSB 在 7 為數據時候不使用保持復位。

/*************************************************

UART_A1_sendData

函數功能:串口A1發送字符串數據

函數參數:Point:傳入的字符串  CountTemp:數據數量

函數返回值:無

說明:

*************************************************/

void UART_A1_sendData(unsigned char *Point,unsigned int CountTemp)

{

  DE485;

  while(CountTemp>0)

  {

    UCA1IFG &= ~UCTXIFG;                 

    UCA1TXBUF = *Point;

    while((UCA1IFG & UCTXIFG) == 0);

    Point++;

    CountTemp--;

  }

}

//*************************************************************************

// 串口1發送數據函數  

//*************************************************************************

void Send_Byte(uchar data)

{    

  DE485;  

  while(!(UCA1IFG&UCTXIFG));             //發送寄存器空的時候發送數據   

  UCA1TXBUF=data;   

  //RS485_CTR0;

}  

//*************************************************************************

//              串口1發送字符串函數

//*************************************************************************

void Print_Str(uchar *s)

{     

  while(*s != '\0')     

  {             

    Send_Byte(*s++);         

    delay_ms(2);       

  }  

}

//*************************************************************************

//               處理來自串口1的接收中斷  

//*************************************************************************

#pragma vector=USCI_A1_VECTOR  

__interrupt void UART1_RX_ISR(void)

{   

  uchar data=0;     

  data=UCA1RXBUF;                       //接收到的數據存起來     

  Send_Byte(data);                    //將接收到的數據再發送出去    

  delay_ms(5);                        //切換之前先有個小延時   

  RE485;                         //切換到接收狀態

}


關鍵字:MSP430F5510  串口通訊 引用地址:個人總結之MSP430F5510串口通訊(485)

上一篇:MSP430F169中關于RS485通訊的問題
下一篇:SIM900A GPRS調試筆記

推薦閱讀

硬件平臺:正點原子ATK-SIM900A GSM/GPRS模塊開發板軟件平臺:PC端串口調試工具&網絡調試工具測試目的:測試開發板GPRS功能、熟悉AT指令1.設置網絡因為我這里是通過路由器上網,所以要先進行一些設置。先查看自己本機IP,這里是192.168.1.103,如圖1.圖1通過自己的路由器,查看本機對外的IP,如圖2.圖2路由器的設置里面有一項“轉發規則”,如圖3,選擇“...
在手機界,OPPO、vivo這兩家來自南方廣東省的手機廠商,被網友們戲稱為“藍綠大廠”,有OPPO線下店的地方基本上隔壁都是vivo,提到vivo很大程度上都會捎帶上OPPO,究其原因就是它們的產品與營銷風格相近:都是針對年輕群體,注重外觀設計與線下銷量為主,愛鋪天蓋地的打廣告。 然而到了2019年,“藍綠大廠”的名頭似乎不能繼續扣在OPPO、vivo這...
盡管經濟衰退也將使科技行業陷入困境,但大型公司的長期前景依然光明。本周,CPU和GPU兩大巨頭英特爾和英偉達便加快了自己的收購步伐,據外媒報道,英特爾正通過收購交通數據初創公司來擴展其Mobileye部門;而英偉達將收購開放式網絡先驅Cumulus Networks,試圖在軟件定義的數據中心取得更大的進步。 英特爾加大自動駕駛投入據悉,英特爾正在以9億美元的...
物聯網智庫 整理發布轉載請注明來源和出處導 ?讀科幻照進了現實,無人車配送即將迎來春天。近日,一則美團無人配送車被路人“嚇停”的視頻廣泛流傳于網絡上,引起了網友們熱議。視頻中,網友偶遇到一輛為“生活奔走”美團無人配送車,出于好奇,網友熱情的向無人配送車問好,不料卻嚇了其一跳,在一聲刺耳的摩擦聲后,無人配送車緊急駐車,不再向前。評...

史海拾趣

問答坊 | AI 解惑

VCXO的output load

設計loop filter需要知道VCXO的input capacitance,但是手冊上只有一個output load=30pF。還請知道的兄弟說說output load是什么意思?!?

查看全部問答∨

急??!喚醒后無法自動進入休眠!

wince5.0的系統,2450芯片 設為系統三分鐘后自動休眠 上電開機可以自動進入休眠狀態,可是休眠以后就無法進入自動休眠了!為什么? 請高手指教…

查看全部問答∨

如何通過調用dll控件來獲得串口信息?

硬件方面的知識了解不多,現在做畢業設計,不知道如何通過調用dll控件來獲得串口信息。是要寫代碼嗎?用什么寫?知道的告訴聲,謝謝了…

查看全部問答∨

用bc45編譯ucos遇到許多警告

看完卲貝貝的經典ucos教程后 按照教程那張碟的例子 用bc45編譯例一  雖然能編過去 但是就是有很多警告 多達48個 warring ucos/core.c: constant is long in function OS_InitTaskIdle ..... warring test.c:    mixing p ...…

查看全部問答∨

關于PCj機和嵌入式開發板bootloader。

PC機中的bootloader是用于引導加載程序內核用的、而嵌入式中的bootloader是用于和PC機中的BIOS使用類似的功能的同時也包括了PC機中的bootloader的功能。。我這樣理解對么?…

查看全部問答∨

怎么讓nWave在顯示波形的時候顯示信號的層次

問個debussy的nWave看波形的問題。我加信號后都沒有層次結構的名稱啦。都是:signal_name1, signal_name2, signal_name3 等等,能不能把它配置到 hie_0/signal_name1, hie_0/signal_name2, 或是 hie_top/.../hie_0/signal_name1 等等啊…

查看全部問答∨

求C8051開發板和仿真器 新舊皆可 能用就行

本帖最后由 ddllxxrr 于 2016-1-7 17:09 編輯 替同學問問壇子里有沒有人出C8051開發板的 有的給我發短消息就行 推薦也可以啊~ 本站強薦:185娛樂]城.足球]真_人.彩票齊全]手機可投]注任何游戲. 首次開戶送10元.首存送58元.信譽絕對保證185.cc …

查看全部問答∨

明天考試!MSC51習題求助??!大神來啊~

問題如下: 有一外部中斷源,接入INT0非端,當其中有中斷請求時,要求CPU把一個從內部RAM30H單元開始的50個字節的數據塊傳送到外部RAM從1000H開始的連續存儲區。請編寫對應的程序。   另注:題目沒有給出相應的電路圖,也沒有給出外部存儲 ...…

查看全部問答∨

基于BeagleBone的WIFI通信

作者:chenzhufly QQ:36886052 ( 轉載請注明出處) 硬件環境: BeagleBone 無線網卡: TL-WN321G+ 操作系統: linux-3.1.0-psp04.06.00.03.sdk1. Linux-3.1.0內核已經支持RT73的驅動,所以配置一下內核就可以了,主要由以下兩個步驟:  ...…

查看全部問答∨

在使用STM32F107的例程應用到STM32F103時端口不能正確使用的問題

    剛開始學STM32,買了一塊ALIENTEK的開發板感覺使用寄存器不習慣就改用學庫函數,正好手頭上有神州四號的開發板的例程就拿過來用了,一開始控制LED燈就出現問題了,燈不亮。在Keil上用仿真看到引腳電平一直不變,上網搜問題也沒 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

隨便看看

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 开平市| 乃东县| 临海市| 锦州市| 韩城市| 青阳县| 湖南省| 五峰| 深泽县| 太原市| 杂多县| 神池县| 隆德县| 桦南县| 兴海县| 钦州市| 内江市| 荣成市| 正定县| 罗田县| 上虞市| 昌乐县| 太保市| 永修县| 盱眙县| 东兴市| 淮北市| 商城县| 神池县| 马尔康县| 洞口县| 土默特左旗| 永昌县| 平江县| 定日县| 嵊泗县| 凤凰县| 西青区| 罗定市| 桃园县| 嘉定区|