本文經授權轉載自公衆号嵌入式Linux(id:Linux-c-world),作者昵稱也很有意思--寫代碼的籃球球癡,望文生義,估計是他又喜歡寫代碼又喜歡打球吧,人稱韋工。和韋老師是本家,也是我們的校園代理。
本文經授權轉載自公衆号嵌入式Linux(id:Linux-c-world),作者昵稱也很有意思--寫代碼的籃球球癡,望文生義,估計是他又喜歡寫代碼又喜歡打球吧,人稱韋工。和韋老師是本家,也是我們的校園代理。
TTL電平:
TTL是Transistor-Transistor Logic,即晶體管-晶體管邏輯的簡稱,它是計算機處理器控制的設備内部各部分之間通信的标準技術。TTL電平信号應用廣泛,是因為其數據表示采用二進制規定, 5V等價于邏輯"1",0V等價于邏輯"0"。
數字電路中,由TTL電子元器件組成電路的電平是個電壓範圍,規定:
輸出高電平>=2.4V,輸出低電平<=0.4V;
輸入高電平>=2.0V,輸入低電平<=0.8V。
噪聲容限是0.4V。
RS232電平:
RS232是串口的一個标準,它有自己的電平定義:它采用負邏輯,-15V~-3V代表邏輯"1", 3V~ 15V代表邏輯"0"。
串口,COM口就是電腦上的物理接口形式,COM口簡稱串口。而TTL,RS-232,是電平标準,就是多少電壓範圍代表邏輯“ 1 ”,多少電壓範圍代表邏輯“ 0 ”。大家都知道在電子的世界裡面就是 0 和 1 而已嘛。
下圖是 USB 轉 RS232 的轉換線,我們看到很多線,隻要是 9 pin 的,就可以猜測這個鬼東西是 RS232 的串口線,如果是 排針引出的,可以認為是 TTL 電平的。
PL2303、CP2102 芯片是 USB 轉成 TTL 串口的芯片,我們以前在學習 51 單片機、 STM32時經常這樣用,也要注意端口的電平是多少 V 。而 MAX232 芯片是 TTL 電平 和 RS232 電平的雙向轉換芯片。
為什麼有了 TTL 電平還需要 RS232 和 RS485 兩種電平呢?
是因為TTL 電平傳輸距離比較近,主要用于芯片之間的傳輸,RS232 和 RS485 數據傳輸距離比較遠。
一般從芯片裡引出的UART口就是TTL電平,其引腳如下:
學習 STC 單片機的同學應該記得,以前開發的時候,都是用串口線給單片機下載程序,用的串口就是 RS232 ,類似下圖,工作以後公司配的電腦都沒有了RS232,筆記本也沒有RS232了,用的最多的都是 USB 轉串口線。
最後分享最近遇到串口調試中比較奇葩的問題,最近做一個 Android 設備上的串口透傳實驗,前兩周做好了 demo ,收發數據都沒問題,發送 0123456789ABCDEF 在接收端也能正常接收,今天調試時發現有問題,接收到的數據變成了 7F6E5D4C3B2A1908 (而且每次都是這樣的穩定數據),當時看到這個數據,簡直要瘋了,又用命令行 echo cat 調試,結果還是一樣的悲劇,實在沒辦法,約了小 C 去樓下喝了一杯水,回來把設備上的串口線重新插拔了下,結果,你們知道的,就那麼好了。這裡想說的是,調試之前一定要保證硬件設備是 OK 的,而且要記錄好之前的調試記錄和軟件硬件環境,這樣能減少排查問題的時間。
這樣的解決辦法不是正向的,N 年前,面試時,有個面試官問我一個很刁鑽的問題,說遇到難題的時候如何正向解決,也就是說發現問題後,不能倒推驗證,相反,我是比較喜歡倒推驗證的,「不管白貓黑貓,抓到老鼠的就是好貓」。
--END--
預熱 | 萬衆期待的單片機,Linux二合一的STM32MP157開發闆亮相
了解更多
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!