有用使用RS485,需要软件使用收发。
需在驱动架构修改,已经做了一下修改。发现不是很理想。
##########################
1、start_tx 时为TX 模式
2、shutdown时为RX模式
问题:一个发线程和收线程,此时是能发不能收。
求解:收发模式的最好点是在哪里?
#########################
static struct uart_ops serial_omap_pops = {.tx_empty= serial_omap_tx_empty,.set_mctrl= serial_omap_set_mctrl,.get_mctrl= serial_omap_get_mctrl,.stop_tx= serial_omap_stop_tx,.start_tx= serial_omap_start_tx,.stop_rx= serial_omap_stop_rx,.enable_ms= serial_omap_enable_ms,.break_ctl= serial_omap_break_ctl,.startup= serial_omap_startup,.shutdown= serial_omap_shutdown,.set_termios= serial_omap_set_termios,.pm= serial_omap_pm,.type= serial_omap_type,.release_port= serial_omap_release_port,.request_port= serial_omap_request_port,.config_port= serial_omap_config_port,.verify_port= serial_omap_verify_port, #ifdef CONFIG_CONSOLE_POLL.poll_put_char = serial_omap_poll_put_char,.poll_get_char = serial_omap_poll_get_char, #endif };
Jian Zhou:
RS485应该是通过1个GPIO来控制首发方向的,你有在这个驱动的收发函数中加入GPIO控制功能么?
andarm lin:
回复 Jian Zhou:
在serial_omap_stop_tx函数中,然后判断 if (up->ier & UART_IER_THRI)发送完成后,然后将模式转换成接收模式RX,
现象: 但是用示波器看到TX数据还没发送完,EN引脚就已经被切换了。
求解?
pt zhang:
回复 andarm lin:
你好,
我也是遇到能发不能收的问题,请问你解决了吗