主题:EM9160 COM3通信问题 共有31976人关注过本帖 |
---|
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)) |
|
单帖管理 | 引用 | 回复 |