TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3354 串口

     最近测试串口的时候发现一个问题很疑惑,我用的是Linux系统,使用app将串口收发端短接的方式进行测试,测试时收发数据显示很正常,但是我在app中打开硬件流控,用同样的方法,将收发引脚短接测试,同样能收到数据,问题就在于硬件没有接硬件流控引脚,而且没有配置串口流控引脚的pinmux,按理说不能收到数据。我在app中打开硬件流控时用的获取属性设置属性的函数中都检查过返回值,返回值没有错误。

    硬件工程师说是软件问题,但是软件看起来也没有问题,麻烦您帮忙看看产生这个问题的原因,谢谢。

tony2:

驱动中是否实现了硬件流控制?如果只是个返回值那么肯定不能用了。

xinxin zhou:

回复 tony2:

驱动中确实实现了硬件流控,而且用户态的app设置流控的函数返回值都是零,也就是返回值都是返回正确的,按理说没有硬件连接,流控设置返回值应该是错误的 但是结果不然,等待解惑中

leo chen:

回复 xinxin zhou:

流控应该也是靠管脚的高低电平来判断的吧

也许当时的管脚状态符合要求,所以返回正确,可以测量一下流控的管脚电平

xinxin zhou:

回复 leo chen:

硬件流控确实靠管脚的高低电平来判断,但是我的这个根本就没有接硬件流控引脚,只是在应用层打开了硬件流控,结果没报错而且还能收发数据。

Jian Zhou:

回复 xinxin zhou:

请问你用的是那个串口?如果是UART1,Linux上的流控脚pinmux配错了,你参考一下:

Incorrect:

From the board-file arch/arm/mach-omap2/board-am335xevm.c:

static struct pinmux_config uart1_wl12xx_pin_mux[] = {

        {"uart1_ctsn.uart1_ctsn", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},

        {"uart1_rtsn.uart1_rtsn", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT},

        {"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},

        {"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL},

        {NULL, 0},

 

Correct:

static struct pinmux_config uart1_wl12xx_pin_mux[] = {

        {"uart1_ctsn.uart1_ctsn", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT},

        {"uart1_rtsn.uart1_rtsn", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},

        {"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},

        {"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL},

        {NULL, 0},

赞(0)
未经允许不得转载:TI中文支持网 » AM3354 串口
分享到: 更多 (0)