找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32開發(fā)板串口的規(guī)劃

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:94349 發(fā)表于 2015-12-19 15:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一說到串口,大家應(yīng)該在腦海中出現(xiàn)下面這個畫面就對了:




看到?jīng)]有,這就是正兒八經(jīng)的串口。在現(xiàn)在的工控機上,和以前的家用電腦上,都有串口,現(xiàn)在的家用電腦上,已經(jīng)沒有串口了。(千萬不要把VGA口看成串口,VGA口是15針,串口是9針)

我們要搞單片機,就必須會用串口。所以,開發(fā)板上,就必須要有學(xué)習(xí)串口的功能。

串口的硬件應(yīng)用,現(xiàn)在最多的有3種:
  • USB轉(zhuǎn)TTL串口
  • 232串口
  • 485通信

在我們的開發(fā)板上,把這3種功能都實現(xiàn)。

一、USB轉(zhuǎn)TTL串口

這個功能,在講程序下載方式的那一篇文章已經(jīng)講過了。STM32VET6有5個串口,但是只有串口1可以下載程序,所以我們默認(rèn)把USART1與CH340G轉(zhuǎn)成的RXD和TXD放到一起。




我們看圖,CH340G的2腳和3腳分別是RXD和TXD。同時,單片機上面也有RXD和TXD,那么只需要將CH340G上面的TXD和單片機的RXD連接,就可以在電腦上用“串口調(diào)試助手”給單片機發(fā)送數(shù)據(jù),再把CH340G上面的RXD和單片機的TXD連接,單片機就可以給電腦上的“串口調(diào)試助手”發(fā)送數(shù)據(jù)了。



這就是初學(xué)者需要注意的,串口的RXD和TXD是“交叉”連接的。這里的“交叉”,是指這個設(shè)備的RXD和另一個設(shè)備的TXD連接,同理,這個設(shè)備的TXD再和那個設(shè)備的RXD連接。

(真人真事:有一天,一個小伙伴做兩個設(shè)備的串口通信,問我怎么就不能收發(fā)數(shù)據(jù),我說你的RXD和TXD兩條線交叉了嗎?,他說沒有,我說必須要交叉連接才可以。結(jié)果,他把兩條線扭成了麻花,RXD還是連接到了RXD上面.....還問我要多交叉才可以啊.....)

二、232串口

這種串口,就是文章最上面圖片上顯示的串口。我們用USART3來學(xué)習(xí)232串口。用的是SP3232芯片。




232串口和USB轉(zhuǎn)TTL串口的區(qū)別:它們的區(qū)別就是RXD和TXD引腳電壓大小。232和TTL說的是兩種電平。作為初學(xué)者,一說到電平,大家腦海中就應(yīng)該有個“高低”的概念。電平屬于數(shù)字電路的概念,有“高電平”和“低電平”兩種。多大電壓是高電平,多大電壓是低電平,完全是由人決定和規(guī)定的。

232電平:+12V表示低電平,-12V表示高電平。(你沒有看錯,就是這樣的)
TTL電平:那要看你的器件供電電壓,如果是5V供電,高電平是5V,低電平是0V;如果是3.3V供電,高電平是3.3V,低電平是0V。

看上面SP3232的圖,SP3232這個芯片是“TTL電平轉(zhuǎn)232電平”芯片。它的9腳和10腳和單片機的RXD和TXD相連接,9腳和10腳是TTL電平,高低電平分別是3.3V和0V。7腳和8腳是232電平引腳,是可以產(chǎn)生正負(fù)12V的引腳,和別的設(shè)備的232串口通信。同樣是交叉連接。

三、485通信

說到485通信,你的腦海中應(yīng)當(dāng)浮現(xiàn)的是A和B兩個字母。485通信用的是兩條線通信,一條叫做A,一條叫做B,屬于差分通信。兩臺設(shè)備,如果用485通信,線是這樣連接的:




485通信的距離要比232長,所以485一般用作遠(yuǎn)距離通信,232一般用作近距離通信。(一般10米以內(nèi)用232,10米之外到幾公里,用485通信。這里的10米,就是個一般數(shù),不要再糾結(jié)的問我:“12米可以用232通信嗎?”,“對不起,你的情商需要充值了”。)



我們用USART2來做485通信實驗,用SP3485芯片,SP3485的1腳連接單片機的RXD,4腳連接單片機的RXD,2腳和3腳是“發(fā)送數(shù)據(jù)”和“接收數(shù)據(jù)”控制引腳,DE高是發(fā)送數(shù)據(jù),RE低是接收數(shù)據(jù),因為發(fā)送數(shù)據(jù)的時候不能接收數(shù)據(jù),接收數(shù)據(jù)的時候不能發(fā)送數(shù)據(jù),所以DE和RE的電平,在一種狀態(tài)下(發(fā)送或者接收),電平是一樣的。所以把這兩個引腳連接在一起,用單片機一個引腳控制就實現(xiàn)了發(fā)送和接收。

關(guān)于485控制引腳的選擇,STM32帶485自動控制功能,所以我們用STM32的PA1來控制,PA1有一個復(fù)用功能是USART2_RTS,STM32自動485就是用這個引腳控制數(shù)據(jù)收發(fā)。當(dāng)然,如果我們不用自動收發(fā)功能,也可以把PA1當(dāng)做普通的IO口,然后用寫程序控制收發(fā)數(shù)據(jù)。這里就實現(xiàn)了485的兩種控制方式,這個功能,好像別的開發(fā)板很少有哦。

好了,今天就說到這里,下期再見!

這里是正在直播的《如何做一個STM32開發(fā)板》,看以前的文章或者看以后的文章,關(guān)注微信公眾號:科技老頑童。

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表