這兩天在調試帶UART的藍牙模塊,由於剛開始分不清UART電平和RS232電平的區別,直接將藍牙上UART的RX和TX接到PC上串口的TX和RX,導致所有數據都是亂碼。後來才弄清楚:在UART上使用的TTL電平,而PC的串口是RS232,它有自己的電平定義,所以在UART和RS232之間需要做一個電平轉換。現在來認識一下什麼是TTL電平和RS232電平。
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"。