从运行 Debian 10 的 BeagleBone 读取 /dev/ttyS4,而不是所写内容

从运行 Debian 10 的 BeagleBone 读取 /dev/ttyS4,而不是所写内容

我正在努力尝试让 ttyS4 启动并在 Beaglebone black 上运行。

我已在 /boot/uEnv.txt 中设置了 UART4(请参阅问题底部)。

在 Beaglebone 上,我将通讯角和 RS-485 A/B 连接到电池 BMS 设备。通讯速率为 9600 波特 8N1。

要嗅探我所做的内容:

(stty -F /dev/ttyS4 9600 cs8 -cstopb -parenb; cat -v /dev/ttyS4) | od -t x1

我在日志中注意到,它不是预期的字节流:我应该有以 A5 01 90 08 XXXX 开头的 13 个字节的内容。

是什么导致字节不同?我应该怎么做才能解决这个问题?

0000000 4d 2d 27 5e 41 21 5e 48 5e 42 58 5e 40 5e 40 5e
0000020 40 5e 40 5e 40 5e 40 4d 2d 51 5e 40 4d 2d 27 5e
0000040 41 21 5e 48 5e 42 58 5e 40 5e 40 5e 40 5e 40 5e
0000060 40 5e 40 4d 2d 51 5e 40 5e 40 4d 2d 27 5e 41 21
0000100 5e 48 5e 42 58 5e 40 5e 40 5e 40 5e 40 5e 40 5e
0000120 40 4d 2d 51 5e 40 4d 2d 27 5e 41 21 5e 48 5e 42
0000140 58 5e 40 5e 40 5e 40 5e 40 5e 40 5e 40 4d 2d 51

我的uEnv.txt:

cat /boot/uEnv.txt
#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0

uname_r=4.14.108-ti-r131
#uuid=
#dtb=

###U-Boot Overlays###
###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
###Master Enable
enable_uboot_overlays=1
###
###Overide capes with eeprom
#uboot_overlay_addr0=/lib/firmware/BB-UART1-00A0.dtbo
#uboot_overlay_addr1=/lib/firmware/BB-UART2-00A0.dtbo
#uboot_overlay_addr2=/lib/firmware/BB-UART4-00A0.dtbo
#uboot_overlay_addr3=/lib/firmware/BB-UART5-00A0.dtbo
###
###Custom Cape
#dtb_overlay=/lib/firmware/<file8>.dtbo
###
###Disable auto loading of virtual capes (emmc/video/wireless/adc)
#disable_uboot_overlay_emmc=1
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
disable_uboot_overlay_wireless=1
disable_uboot_overlay_adc=1
###
###PRUSS OPTIONS
###pru_rproc (4.14.x-ti kernel)
uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
###pru_rproc (4.19.x-ti kernel)
#uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
###pru_uio (4.14.x-ti, 4.19.x-ti & mainline/bone kernel)
#uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
###
###Cape Universal Enable
enable_uboot_cape_universal=1
###
###Debug: disable uboot autoload of Cape
#disable_uboot_overlay_addr0=1
#disable_uboot_overlay_addr1=1
#disable_uboot_overlay_addr2=1
#disable_uboot_overlay_addr3=1
###
###U-Boot fdt tweaks... (60000 = 384KB)
#uboot_fdt_buffer=0x60000
###U-Boot Overlays###

cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet

#In the event of edid real failures, uncomment this next line:
#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet video=HDMI-A-1:1024x768@60e

##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

答案1

我没明白,但使用最小值如下:

minicom -Hw -b 9600 -D /dev/ttyS4

显示正确的数据:

b ff fe ff b7 ff ef af fe 9b fb ff f2 ff bf f7 ff ff f3 bd fd df f1 6d df ff ee ff b3 ff bb bb fe 5b ff ff fd ff 9f 7f ff b7 7f fb ff ff fe fb ff ff ff d7
 ff ff a5 40 94 08 00 00 00 00 00 00 00 00 81 fa ff ====>a5 01 94 08 08 02 00 00 00 00 00 ec 38 ef ===== b6 de 7f ff f6 ff df bf fb 7f 7f 7b ff df df fe ff ff ff bf 
ff ff ff fe ff 7f ff fb df ff fe ff dd ff ff fd f6 f7 dd ff ff ba ff f7 f9 f7 ff fb f6 df ff ff fe ff 7e fa bf 5b 9d fd ff 8b db ff ff ff ff b7 9f df 9b f
f fb ff c9 9f 9b ff 7f ff ff bf ff df ff ff ff ff fd fd bf 97 ff ef ff ff f6 76 fe fe e7 e7 87 ff ff fd ff d2 ff f7 ff ff bb ef d6 ff bb f9 fd ff ef ff ff
 ec df ff 7b ff bf fc fb ff ff ff ff ff f7 d3 7f 7f b7 ff bf d7 fb ff fb ff df fe ff ff 7f ff fe fe bf a5 40 95 08 00 00 00 00 00 00 00 00 82 ff a5 01 95 
08 01 0c d4 0c d2 0c d2 ec cc a5 01 95 08 02 0c d6 0c d6 0c d4 ec d5 ff fe a5 01 95 08 03 0c d4 0c ce 0c d4 ec cc f7 ff de ff ff ff ff ff 7f fd ff 7f eb f
f 5b 9d cb ff ff 2c 77 fd de 1c ed fc fc 00 f2 1f 77 ed 81 6f fd ff da ff ff ff eb ff ff ff ff ff df fb 6d df e7 f7 b3 bb fe 7f ff ff ff fb df ff ff 79 bf

我相信我的stty时间已重置cat?那么命令应该怎么写呢?

相关内容