分类: LINUX
2010-11-15 09:16:07
我选用了at91rm9200的的串口3,用的内核为2.4.27,先在pio.h中使能rts3,
static inline void AT91_CfgPIO_USART3(void) {
AT91_SYS->PIOA_PDR = AT91C_PA5_TXD3 | AT91C_PA6_RXD3;
AT91_SYS->PIOA_BSR = AT91C_PA5_TXD3 | AT91C_PA6_RXD3;
//mikewanghy add
AT91_SYS->PIOB_PDR = AT91C_PB0_RTS3;
AT91_SYS->PIOB_BSR = AT91C_PB0_RTS3;
}
然后在at91_serial.c中的at91_change_speed函数中加入
if (cflag & CRTSCTS)
mode |= AT91C_US_USMODE_RS485;
最后在你的应用程序中如果你想使用485功能,
static struct termios termios_new
termios_new.c_cflag |= CRTSCTS;
如果你想使用RS232功能,
termios_new.c_cflag &= ~CRTSCTS;
chinaunix网友2010-11-15 15:12:43
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com