最近测试串口的时候发现一个问题很疑惑,我用的是Linux系统,使用app将串口收发端短接的方式进行测试,测试时收发数据显示很正常,但是我在app中打开硬件流控,用同样的方法,将收发引脚短接测试,同样能收到数据,问题就在于硬件没有接硬件流控引脚,而且没有配置串口流控引脚的pinmux,按理说不能收到数据。我在app中打开硬件流控时用的获取属性设置属性的函数中都检查过返回值,返回值没有错误。
硬件工程师说是软件问题,但是软件看起来也没有问题,麻烦您帮忙看看产生这个问题的原因,谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
最近测试串口的时候发现一个问题很疑惑,我用的是Linux系统,使用app将串口收发端短接的方式进行测试,测试时收发数据显示很正常,但是我在app中打开硬件流控,用同样的方法,将收发引脚短接测试,同样能收到数据,问题就在于硬件没有接硬件流控引脚,而且没有配置串口流控引脚的pinmux,按理说不能收到数据。我在app中打开硬件流控时用的获取属性设置属性的函数中都检查过返回值,返回值没有错误。
硬件工程师说是软件问题,但是软件看起来也没有问题,麻烦您帮忙看看产生这个问题的原因,谢谢。
请问你用的是那个串口?如果是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},