當前位置:首頁 » 操作系統 » rs232源碼

rs232源碼

發布時間: 2022-10-01 12:26:01

1. 關於開發板上的rs232

rs232 是 技術標准 代號,不是 晶元

可能 說的 是 max232 吧

建議 去 我的領地 5d6d 的 proteus 論壇看看

那裡有很多 單片機模擬實例,包括模擬圖 和 源碼
搜 5d6d 和 proteus 2個關鍵詞

2. rs232與單片機實施收發數據的詳細步驟,及其特點

先解釋一下現象:
(1)MAX232的12腳即R1OUT連接到了單片機的RX腳,因此使用探頭碰MAX232的12引腳時導入了干擾信號,所以接收到了亂的數據。同時,也證明了單片機的接收電路和程序都沒有問題。
(2)板子上的地接到示波器上的地,PC才能收到數據,說明單片機與PC沒有共地。同時,也證明了單片機的發送電路、程序和PC的接收電路都沒有問題。
原理:
(1)PC的串口即RS232有9個引腳,與單片機通信時用到三個引腳,依次是2腳RX、3腳TX、5腳信號GND。
(2)而單片機串口與此相反,2腳TX、3腳RX、5腳信號GND。
(3)只要把這三根線依次連接,2-2、3-3、5-5即可完成通信。
(4)同時,根據實際通信設備介面不同,串口線也分多種,如直連線、交叉線、公母頭區別等。
故障排除流程:
(1)用萬用表等測量MAX232的14腳T1OUT與開發板串列介面的2腳TX、MAX232的13腳R1IN與開發板串列介面的3腳RX、開發板串列介面的5腳與電源地是不是分別連接。如果連接沒問題,則進行下一步。
(2)用萬用表等測量串口線,PC端的2腳與單片機端的2腳、PC端的3腳與單片機端的3腳、PC端的5腳與單片機端的5腳是不是分別對應,如果對應連接沒問題,則進行下一步。
(3)將PC上串列介面的2、3引腳短接。
(4)打開串口工具如「超級串口」等,下載地址,打開串口,在輸入框中隨便輸入幾個字元,看是不是能在接收窗口中收到。
(5)如果收不到,則說明PC的串口問題(排除串口工具沒有開錯串口或短接沒問題的情況下),換台電腦試下。能收到,則說明電腦端收發都沒問題,進行下一步。
(6)將串口線插到電腦上,開發板端的插頭不插而直接將2、3腳短接。再次用串口工具發送,看是否能接收到,如果能接收到,則證明串口線沒問題,進行下一步。
(7)將串口線插到開發板得串列介面上,再使用串口工具收發。
(8)如果以上都不行,則自己做3根線,也可以使用杜邦線,將PC的TX與開發板的RX、PC的RX與開發板的TX、PC的信號地與開發板的地分別相連。再用串口工具收發測試。
通過以上步驟,則可以逐步排查到問題的具體原因。不過,根據問題及之後的描述,最大的可能性是串口線用的不對,導致PC串口與開發板串口的3根線沒有分別對應上。

3. 如何用RS232實現2台電腦的通信要源代碼用C寫的

RS232 通常是 點對點 通信

當然, 用 專用的 模塊,也可以 實現 點對多的 主從 通信

請看 武漢鴻偉光電
E232H4 4路RS-232高速隔離集線轉換器
特點

▶實現一個串口設備與4個串口設備主從式通信
▶專用工業導軌槽模塊
▶兩端信號保持光電隔離;
▶全面容錯機制,一路從節點損壞不影響其他節點通信

4. 串口RS-232發送代碼問題

「商業軟體」串口發送和接收數據,發送的只能是字元串型的代碼,設備要收十六進制代碼
答案:
1、分析
發送字元串型,實際是一個一個字元發送的,設備也是一個一個十六進制代碼接受的。
應此,如果設備端要接收「55 01 01 02 01」這樣5個位元組的十六進制代碼,軟體端發送可以這樣,
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
不幸的是如果要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,由於裡面含有十六進制00(即0x00),0x00字元表示是'\0',在字元串中表示的字元串結束。
看你運氣了,如果程序的源代碼中發送字元串模塊,發送字元長度是通過判斷字元串長度(strlen)來工作的,那你怎麼也發送不出「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,從上看出
buff[5]=0x00;buff[6]=0x00;buff[7]=0x5a;時,你的軟體會認為字元串長度只有5。只會發送出「55 01 01 02 01」這樣5個位元組的十六進制代碼。如果你的軟體發送字元長度是根據你輸入或設定的,那能正常發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
例如發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x5a;
2、解決辦法(不該源代碼的情況下)
做個中間件,需要用到PC的多個串口通道(串口不夠用多串口卡擴展),系統接線也要調整,如果是1對1(一套軟體對一個設備)
例如:軟體是用com1口發送接收,原來是直接com1口接設備,現在改成,com1口接com2口,com2口同時也接設備(注意RS232是可以三線通訊的,PC端com1口的2腳接com2口的3腳,com2口的3腳接設備的2腳,PC端com1口的3腳接com2口的2腳,com2口的2腳接設備的3腳,PC端com1口的5腳接com2口的5腳,接設備的5腳),這樣做的原理是通過com2口來正確發送給設備十六進制代碼。並且com1向com2發送的命令需要修改。例如
要發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼,軟體這端
發送字元串變數是buff:
char *buff[10];
buff[0]=0x55;
buff[1]=0x01;
buff[2]=0x01;
buff[3]=0x02;
buff[4]=0x01;
buff[5]=0xee;
buff[6]=0xff;
buff[7]=0xee;
buff[8]=0xff;
buff[9]=0x5a;
com2口中間件收到「55 01 01 02 01 ee ff ee ff 5a」這樣10個位元組的十六進制代碼,他就會進行轉換(0xee表示下個位元組需要轉碼,轉碼方法是減去0xff,那0xff實際就是0x00。)這樣通過中間件在com2口向設備發送「55 01 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼。
以上是發送,如果接收呢,同樣看商業軟體的接受機制,如果商業軟體收到0x00,實際就是'\0',表示一個字元串接受終止,那麼接收數據怎麼整都不能正常收到「55 02 01 02 01 00 00 5a」這樣8個位元組的十六進制代碼(含0x00),那麼只有改寫源代碼一種方法。
3、後記
如果你的所謂商業軟體要求別人改源代碼不切實際,而且商業軟體也不復雜,可以找人重寫商業軟體了,現在做軟體外快的人太多了,拿公司軟體稍微改改,時間用不了多少,費用也不高,幾千吧

5. RS232串口通信程序(VC++實現)

visual
c++_turbo
c串口通信編程實踐

6. pb 如何調用電子秤(RS232)數據 請高手指點 最好給出源碼 多謝!

pb ?powerbuilder?

用 mscomm 吧
和 VB 類似

7. 通過JS獲取串口數據的源代碼,RS232的串口

串口數據通信使用JS沒辦法去做的。你這個需要用C或者C++等底層語言去獲取。

熱點內容
跳轉頁源碼 發布:2024-09-17 03:13:05 瀏覽:543
html文件上傳表單 發布:2024-09-17 03:08:02 瀏覽:784
聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:726
linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688
兩個安卓手機照片怎麼同步 發布:2024-09-17 01:51:53 瀏覽:207
cf編譯後沒有黑框跳出來 發布:2024-09-17 01:46:54 瀏覽:249
安卓怎麼禁用應用讀取列表 發布:2024-09-17 01:46:45 瀏覽:524
win10設密碼在哪裡 發布:2024-09-17 01:33:32 瀏覽:662
情逢敵手迅雷下載ftp 發布:2024-09-17 01:32:35 瀏覽:337
安卓如何讓軟體按照步驟自動運行 發布:2024-09-17 01:28:27 瀏覽:197