按照以下套路
https://whycan.cn/t_2889.html
发现可以产生/dev/ttyG0了 但是连接PC 没有usb设备
我发现 别人加载驱动后是这样的
# modprobe g_serial
[ 39.439805] g_serial gadget: Gadget Serial v2.4
[ 39.444487] g_serial gadget: g_serial ready
[ 39.847760] g_serial gadget: high-speed config #2: CDC ACM config
[ 39.853932] gs_console_connect: port num [0] is not support console
我加载后 是这样的 少了后面两句
# modprobe g_serial
[ 28.790748] g_serial gadget: Gadget Serial v2.4
[ 28.795303] g_serial gadget: g_serial ready
离线
usb id引脚电平有没有切换?
这个PE2 一直是低
离线
那你用杜邦线手动拉低/拉高试一试。
真的可以啊 一拉高pc就识别出来了
离线
我查了下原理图 荔枝派nano对usb ID PE2进行了上拉
而我的这个板是早期在迪卡淘宝店买的f1c200s板子 看来应该是这个板子没有对PE2进行上拉
离线
在测试发送接收的时候发现个问题
当pc发给板子的时候 pc会接收到发送的数据 就像回环测试一样
如何改成正常的?
离线
你发的这个链接里10楼和我情况一样 然后我1楼发的链接的题主写了个博客
https://blog.csdn.net/lan120576664/article/details/101037170
里面测试结果的截图也是一样 都是pc发给板子 然后pc收到了发的内容
离线
离线
找到问题了 原来是linux下串口的会带部分收发规则 参考
https://blog.csdn.net/lvliang2008/article/details/6192863
这个 pc发给板子 然后pc收到了发的内容 的现象是因为默认开启了串口回显功能
shell环境下可以使用stty命令可以对串口进行配置
Linux 查看串口配置
stty -F /dev/ttyG0
去掉串口回显
stty -F /dev/ttyG0 -echo
还有串口默认规则是 板子使用echo "send data" > /dev/ttyG0 发送给PC时 会自动对发送数据添加换行符\n
并且接收数据时 也是通过换行符\n作为接收结束 所以PC发送给板子时必须在发送数据末尾加换行符\n
离线
楼上说到发送数据要带\n结尾 那如何设置为像单片机串口一样接收 不用带\n结尾呢?
1.linux应用程序下的串口编程 参考
https://www.cnblogs.com/silencehuan/p/11103074.html
2.shell环境下通过stty配置
stty -F /dev/ttyUSB0 raw min 1 time 10
其中raw是设置本设备不作为串口的‘控制终端’”。如果不使用该选项,会有一些输入字符影响进程运行(如一些产生中断信号的键盘输入字符 以及上面说的串口回显等)
其中min是从串口缓冲里读出的最小的接收数据
其中time是每次cat 串口的读取超时时间 单位100ms
shell操作串口参考
https://blog.csdn.net/chenliang0224/article/details/100593900
stty命令参考
http://linux.51yip.com/search/stty
离线