主題:EM9160 COM3通信問題 共有36058人關注過本帖 |
---|
diaryon |
1樓 |
EM9160 COM3通信問題 Post By:2009-1-12 21:35:00 [只看該作者]
你好:
    最近在用EM9160作板子,在調試程序時發現一個很奇怪的問題,已經困惑了一個星期了,不知何故。我們自己作了一個底板,在底板上有一片STM32單片機進行AD采樣,并將數據通過串口(baud=115200)向外傳送。用工業控制計算機COM1/COM2可以接受單片機采集的信號,用EM9160不能接受串口數據(償試過交換RS232 TX/RX信號線)。但是EM9160卻能接收來自工業控制計算機的RS232信號,用示波器查看峰峰值為15V。如果用計算機作為調試設備,兩頭都是好的,但是兩個設備之間卻不能通信,我應該怎么來改決這個問題? ┌────┐   Rx     ┌───────┐ │計算機  │ ======   │ EM9160評估板 │  (可以通信) └────┘   Tx     └───────┘ ┌────┐   Rx     ┌───────┐ │ 計算機 │ ======   │ STM32單片機  │  (可以通信) └────┘   Tx     └───────┘ ┌──────┐    Rx     ┌───────┐ │STM32單片機 │  ======   │ EM9160評估板 │   (不能通信) └──────┘   Tx      └───────┘ |
|
單帖管理 | 引用 | 回復 |
x10 |
2樓 |
Post By:2009-1-13 9:07:00 [只看該作者]
請確認STM32單片機串口接口電平是TTL或RS232C,EM9160上不同串口有不同的接口電平,其中COM3為RS232C電平(+/-9V),但注意COM3是通過MAX202E驅動的,不像PC那樣有很強的驅動能力。如果接到TTL電平的串口,通訊不正常。
|
|
單帖管理 | 引用 | 回復 |
diaryon |
3樓 |
Post By:2009-1-13 12:11:00 [只看該作者]
今天早上找到問題了,在等待接收數據時,需要寫數據出去才能收數據,真奇怪.
改以前代碼: if( WaitCommEvent(m_hAdSerial,&dwEvtMask, NULL)) 改后代友: Sleep(50); WriteFile(m_hAdSerial,"0",1,NULL,NULL); Sleep(50); if( WaitCommEvent(m_hAdSerial,&dwEvtMask, NULL)) |
|
單帖管理 | 引用 | 回復 |