我正在使用带有
STM32MP157C 的 SoM。我已将 LTE 调制解调器连接到 uart7,它与 4 线 uart 相连,通过电平转换器。设备树包含以下内容:
- uart7_pins_mx: uart7_mx-0 {
- pins1 {
- pinmux = , /* UART7_RX */
- ; /* UART7_CTS */
- bias-disable;
- };
- pins2 {
- pinmux = , /* UART7_TX */
- ; /* UART7_RTS */
- bias-disable;
- drive-push-pull;
- slew-rate = <0>;
- };
- };
- uart7_sleep_pins_mx: uart7_sleep_mx-0 {
- pins {
- pinmux = , /* UART7_RX */
- , /* UART7_TX */
- , /* UART7_RTS */
- ; /* UART7_CTS */
- };
- };
和
- &uart7{
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&uart7_pins_mx>;
- pinctrl-1 = <&uart7_sleep_pins_mx>;
- status = "okay";
- /* USER CODE BEGIN uart7 */
- uart-has-rtscts;
- /* USER CODE END uart7 */
- };
当我启动设备时,RTS 引脚为高电平并保持高电平。使用“cat /dev/ttySTM1”读取设备缓冲区不会导致引脚变低。当我发送带有“echo “AT”> /dev/ttySTM1”的消息时,会显示消息“未设置传输完成”。正如预期的那样,来自调制解调器的 CTS 引脚为低电平。运行“cat /proc/tty/driver/stm32-usart”给出以下内容:
- 1: uart:stm32-usart mmio:0x40018000 irq:41 tx:12 rx:0 CTS|DSR|CD
我希望 RTS 引脚为低电平,并且只有在设备缓冲区已满时才会变高,知道出了什么问题吗?