亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        STM32系列單片機多串口通訊系統(tǒng)簡述

        2016-07-13 10:36:50方少雷蘇躍龍
        山西電子技術(shù) 2016年3期
        關(guān)鍵詞:單片機

        方少雷,李 鵬,蘇躍龍

        (山西省機電設(shè)計研究院,山西 太原 030009)

        ?

        STM32系列單片機多串口通訊系統(tǒng)簡述

        方少雷,李鵬,蘇躍龍

        (山西省機電設(shè)計研究院,山西 太原 030009)

        摘要:以STM32F103RCT6為例,介紹此芯片與液晶顯示屏、微型打印機、PC上位機和AD采集卡之間的串行通信技術(shù)。闡述了此芯片5個同步/異步收發(fā)器使用功能,詳細介紹了硬件連接和軟件配置。在電子儀器開發(fā)中,實現(xiàn)了多串口間的通訊功能。

        關(guān)鍵詞:單片機;同步異步收發(fā)器;串行通信

        目前,單片機已經(jīng)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、智能化管理及過程控制等領(lǐng)域。在這些領(lǐng)域,通常會衍生出許多專用特殊的外設(shè)。比如:彩色液晶屏、微型打印機、紅外控制器、步進電機控制器等等。面對如此多的外設(shè),主控CPU與外設(shè)之間的通信方式就變得尤為重要。本文介紹一種異步串行通信方式:串口通訊。其優(yōu)點有:1) 線路少,成本低;2) 連線方便;3) 通訊協(xié)議標準規(guī)范;4) 外設(shè)終端大部分支持。然而,傳統(tǒng)的MSC51單片機一般只具備1個串口,雖然能夠?qū)崿F(xiàn)多機通訊,但會出現(xiàn)數(shù)據(jù)傳送間的誤碼率高、C程序冗余、運行速度緩慢等缺點。

        采用STM32F103RCT6芯片,最多支持5個USART串口通訊。可連5個外設(shè)同時與CPU進行串行數(shù)據(jù)通信。而且這些外設(shè)之間相互獨立,不存在相互干擾問題。本文將闡述這5個USART同步/異步收發(fā)器使用功能,詳細介紹硬件連接圖和軟件配置。

        1芯片介紹

        STM32F103RCT6芯片是ST意法半導(dǎo)體公司推出的一款基于Cortex-M3核心的ARM芯片,芯片的工作電壓為2.0 V~3.6 V。支持5個USART通用同步/異步收發(fā)器,并且此芯片控制管腳豐富,能夠滿足絕大多數(shù)微控電子儀器的控制要求[1]。參數(shù)如表1所示。

        表1 STM32F103RCT6芯片資源配置

        STM32F103RCT6芯片中內(nèi)置3個通用同步/異步收發(fā)器(USART1、USART2和USART3),和2個通用異步收發(fā)器(USART4和USART5)。其中USART1接口通信速率可達4.5 Mbps(兆位/秒),其他USART接口通信速率最大為2.25 Mbps(兆位/秒)。USART是可產(chǎn)生TTL電平的串口,并且兼容RS-232規(guī)范信號。如果要與PC上位機串口通信,需轉(zhuǎn)換成RS-232電平串口。如圖1所示。

        圖1 外設(shè)硬件連接圖

        2硬件設(shè)計

        如圖1,液晶屏和打印機采用的是TTL電平串口。上位機PC串口連接,是通過MAX3232將TTL電平轉(zhuǎn)化為RS-232電平。MAX3232是RS-232接口電平匹配芯片,外圍電路與MAX232類同[3]。

        本文中,STM32F103RCT6采用12 MHz外部時鐘,其內(nèi)部的鎖相環(huán)能將工作時鐘頻率最大倍頻為72 MHz。其中,USART1是掛在APB2時鐘總線上,最大時鐘頻率為36 MHz。USART2、USART3、USART4、USART5是掛在APB1時鐘總線上,最大時鐘頻率可達72 MHz。STM32F103RCT6的USART管腳對應(yīng)端口如表2。

        表2 各個USART口對應(yīng)的管腳

        3軟件設(shè)計

        按照硬件電路設(shè)計,軟件編程的基本思路是:先配置好外設(shè)總線時鐘頻率,初始化每一個USART波特率,使能其中斷,在嵌套向量中斷控制器(NVIC)中,設(shè)置各個USART中斷優(yōu)先級。若USART口上有數(shù)據(jù)過來,根據(jù)優(yōu)先級先后進入各自中斷響應(yīng)函數(shù)中,執(zhí)行響應(yīng)函數(shù)。執(zhí)行完后,退出中

        斷,繼續(xù)等待數(shù)據(jù)[1,2]。程序采用C語言編寫,程序流程圖如圖2所示。

        圖2 程序流程圖

        1) USART1配置函數(shù)程序和中斷響應(yīng)函數(shù)程序如下:

        void Init_UART1()

        {

        RCC->APB2ENR|=1<<2;//開A口時鐘

        RCC->APB2ENR |= (1<<14);//開串口1時鐘

        Baud_rate(UART1);//設(shè)置波特率

        USART1->CR1|=1<<8;//PE中斷使能

        USART1->CR1|=1<<5;

        NVIC_EnableIRQ(USART1_IRQn);

        NVIC_SetPriorityGrouping(5);

        NVIC_SetPriority(USART1_IRQn,0);

        }

        void USART1_IRQHandler(void)

        {

        if(USART1->SR & (1<<5))

        {

        ……

        }

        }

        2) USART2配置函數(shù)程序和中斷響應(yīng)函數(shù)程序如下:

        void Init_UART2()

        {

        RCC->APB2ENR|=1<<2;//開A口時鐘

        RCC->APB1ENR |= (1<<17);//開串口2時鐘

        Baud_rate(UART2);//設(shè)置波特率

        USART2->CR1|=1<<8;//PE中斷使能

        USART2->CR1|=1<<5;

        NVIC_EnableIRQ(USART2_IRQn);

        NVIC_SetPriorityGrouping(5);

        NVIC_SetPriority(USART2_IRQn,1);

        }

        void USART2_IRQHandler(void)

        {

        if(USART2->SR & (1<<5))

        {

        ……

        }

        }

        3) USART3配置函數(shù)程序和中斷響應(yīng)函數(shù)程序如下:

        void Init_UART3()

        {

        RCC->APB2ENR|=1<<3;//開B口時鐘

        RCC->APB1ENR|=(1<<18);//開串口3時鐘

        Baud_rate(UART3);//設(shè)置波特率

        USART3->CR1|=1<<8;//PE中斷使能

        USART3->CR1|=1<<5;

        NVIC_EnableIRQ(USART3_IRQn);

        NVIC_SetPriorityGrouping(5);

        NVIC_SetPriority(USART3_IRQn,2);

        }

        void USART3_IRQHandler(void)

        {

        if(USART3->SR & (1<<5))

        {

        ……

        }

        }

        4) USART4配置函數(shù)程序和中斷響應(yīng)函數(shù)程序如下:

        void Init_UART4()

        {

        RCC->APB2ENR|=1<<4;//開C口時鐘

        RCC->APB1ENR |= (1<<19);//開串口4時鐘

        Baud_rate(UART4);//設(shè)置波特率

        USART4->CR1|=1<<8;//PE中斷使能

        USART4->CR1|=1<<5;

        NVIC_EnableIRQ(USART4_IRQn);

        NVIC_SetPriorityGrouping(5);

        NVIC_SetPriority(USART4_IRQn,3);

        }

        void USART4_IRQHandler(void)

        {

        if(USART4->SR & (1<<5))

        {

        ……

        }

        }

        5) USART5配置函數(shù)程序和中斷響應(yīng)函數(shù)程序如下:

        void Init_UART5()

        {

        RCC->APB2ENR|=1<<4;//開C口時鐘

        RCC->APB2ENR|=1<<5;//開D口時鐘

        RCC->APB1ENR|=(1<<20);//開串口5時鐘

        Baud_rate(UART5);//設(shè)置波特率

        USART5->CR1|=1<<8;//PE中斷使能

        USART5->CR1|=1<<5;

        NVIC_EnableIRQ(USART5_IRQn);

        NVIC_SetPriorityGrouping(5);

        NVIC_SetPriority(USART5_IRQn,4);

        }

        void USART5_IRQHandler(void)

        {

        if(USART5->SR & (1<<5))

        {

        ……

        }

        }

        在電子儀器開發(fā)過程中,軟件配置也十分重要。以上程序是直接寄存器配置,程序簡單并完整。各個串口的優(yōu)先級別為:USAR1設(shè)置優(yōu)先級為0,最高級;USART2優(yōu)先級為1;USART3優(yōu)先級為2;USART4優(yōu)先級為3;USART5優(yōu)先級為4。配置好這些參數(shù)后,只用在中斷響應(yīng)函數(shù)里添加執(zhí)行處理函數(shù)即可。

        4結(jié)論

        利用STM32F103RCT6多串口功能,可解決CPU與外設(shè)、外設(shè)與外設(shè)間的多串口通信問題。而且STM32F103RCT6芯片工作可靠,在MDK開發(fā)環(huán)境下,開發(fā)程序簡潔方便,可廣泛應(yīng)用于家用電器、醫(yī)用設(shè)備、航空航天電子儀器設(shè)備上。

        參考文獻

        [1]STM32中文參考手冊[M].第10版.意法半導(dǎo)體(中國)投資有限公司,2010:15-22,399-435.

        [2]李寧.基于MDK的STM32處理開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.

        [3]張立勛.STM32與LABVIEW串行通信的設(shè)計[J].平頂山:煤礦機械,2011:215-217.

        The Use of Multiple Serial Port Based on STM32

        Fang Shaolei, Li Peng, Su Yuelong

        (ShanxiInstituteofMechanical&ElectricalEngineering,TaiyuanShanxi030009,China)

        Abstract:This text introduces the serial communication technology between STM32F103RCT6 and LCD, micro printer, PC host computer and AD acquisition card, describes the five synchronous/asynchronous transceiver chip functions. The hardware connection diagram and software configuration are introduced in details. In the development of electronic instruments, the serial communication among multiple serial ports is realized.

        Key words:MCU; USART; serial communication

        收稿日期:2016-03-08

        作者簡介:方少雷(1989- ),男,山西運城,初級工程師,本科,嵌入式程序開發(fā)。

        文章編號:1674- 4578(2016)03- 0055- 03

        中圖分類號:TP311

        文獻標識碼:B

        猜你喜歡
        單片機
        基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的多功能智能插排
        電子制作(2019年11期)2019-07-04 00:34:48
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應(yīng)用
        電子制作(2018年12期)2018-08-01 00:48:04
        MSP430單片機在仿真中要注意的幾點問題
        電子制作(2017年9期)2017-04-17 03:00:53
        基于單片機的平衡控制系統(tǒng)設(shè)計
        電子制作(2017年19期)2017-02-02 07:08:27
        基于單片機的三維LED點陣設(shè)計
        電子制作(2016年21期)2016-05-17 03:52:51
        Microchip推出兩個全新PIC單片機系列
        基于Proteus的單片機控制系統(tǒng)的仿真設(shè)計
        亚洲综合色一区二区三区另类| 国产一区二区三区杨幂| 中文字幕一区二区三区在线看一区| 青青草成人在线播放视频| 久久精品国产清自在天天线| 亚洲国产成人久久一区| 欧美日韩免费一区中文字幕| 日日噜噜夜夜久久密挑| 精品福利一区二区三区蜜桃| 色拍自拍亚洲综合图区| 久久天天躁狠狠躁夜夜爽蜜月| 久久久亚洲精品免费视频| 国产高清精品一区二区| 国产伦精品免编号公布| 国产精品 视频一区 二区三区| 中国免费一级毛片| 香港三级日本三韩级人妇久久| 久久国产精品婷婷激情| 北条麻妃国产九九九精品视频| 免费一级特黄欧美大片久久网| av网站入口在线免费观看| 中文字幕av长濑麻美| 精品国产一二三产品区别在哪| 亚洲综合久久久| 日本大胆人体亚裔一区二区| 一区二区精品国产亚洲| 亚洲av无码一区二区三区观看| 人妻少妇乱子伦无码视频专区| 亚洲成a人片在线观看无码| 爆乳日韩尤物无码一区| 亚洲婷婷久久播66性av| 高清中文字幕一区二区| 大又大粗又爽又黄少妇毛片| 国产91在线免费| 国产偷国产偷亚洲高清| 精品日韩亚洲av无码| 国产无套护士在线观看| 胳膊肘上有白色的小疙瘩| 日韩黄色大片免费网站| 精品+无码+在线观看| 日韩a毛片免费观看|