串口驱动是否有问题?
Tofloor
poster avatar
htao
deepin
2019-04-16 18:07
Author
用deepin很长时间了,感觉还是挺好用的,以前测试都没出过问题。
Reply Favorite View the author
All Replies
avatar
htao
deepin
2019-04-16 18:11
#1
用deepin很长时间了,感觉还是挺好用的,以前测试都没出过问题。
Reply View the author
avatar
htao
deepin
2019-04-16 18:16
#2
我程序主要还是在windows上写,linux这边只要编译通过就没怎么测试。最近突然发现在linux下无法与单片机通信了,全是乱码! 检查上位机程序没发现问题,串口是ch340 usb转ttl的,自发自收也没问题,接单片机就不行了!用以前测试通过的程序也试过了,windows下可以linux下偏偏就是不行。 所以怀疑是不是系统驱动,波特率误差超过单片机可接受范围? 同一台电脑,什么都没变,就只系统更新了。也怀疑是64位系统与32位程序不兼容,可编译成64位也不行,参数设置也仔细核对过,实在想不出还有别的可能了。。。。
Reply View the author
avatar
htao
deepin
2019-04-16 18:23
#3
单片机用的stc12c5a60s2,波特率是9600,有谁试过吗?
Reply View the author
avatar
wildlife
deepin
2019-04-17 06:05
#4
之前调试 ESP8266 时遇到类似问题,用 NodeMCU 的固件在 Linux 上串口能正常输出;烧写编译好的 FreeRTOS 固件,设置好指定波特率,在 Windows 上串口始终能正常输出;但在 Linux 换用 minicom、SecureCRT 等好几个串口输出的软件和波特率,均乱码,最后还是使用 miniterm.py 解决的;

安装
sudo apt install python3-pip && pip3 install pyserial
使用示例
miniterm.py /dev/ttyUSB0 74880
Reply View the author
avatar
htao
deepin
2019-04-18 04:10
#5
谢谢!我先是重装了新的驱动但问题依旧,然后在deepin的应用商店安装了xgcom,单片机居然可以正常调试了!莫非是我的上位机程序有问题?可上位机程序在自发自收状态下又是正常的啊!。。。。。看来还得检查代码!
Reply View the author
avatar
htao
deepin
2019-04-20 19:44
#6
问题终于解决了!!!options.c_iflag  &= ~INPCK; 被错写成 options.c_cflag &= ~INPCK; 当 options. c_cflag |= CS8; 在其后执行还不会出问题,刚好最近整理代码调整了下顺序问题就出来了!!!网上找的代码,调试通过就没仔细检查,这下教训来了。。。
Reply View the author