c++怎么向串口写一个带回车换行的字符串
c++如何向串口写一个带回车换行的字符串?
这个字符串,其实就是我向串发发送的命令。
说明:
串口已经读写方式打开,并且可以正常读取数据;这个过程没问题。
用write(fd,str_cmd_buf, strlen(str_cmd_buf));返回值字符串的长度(写入长度),表示正确;
但是就是串口那边没反应。(就像 命令没生效一样)。
尝试过strcpy(str_cmd_buf,"\r\n") 也尝试过在串尾追加str_cmd_buf[?]=0x0d和0x0a。也不行。
若用 echo "str_cmd_buf" >> 串口 ;立即成功,串口有回应;
又用system调用dos命令echo命令,也能成功,有回应。
就是write不行。何故?
------解决思路----------------------
你这样是对的,应该是数据没发出去吧,建议你先用串口监控软件监控串口调试软件发送的数据测试,然后用你的程序来对比有什么不同.
------解决思路----------------------
单独发送一个字符 0x0d
------解决思路----------------------
试试强制转换unsigned char.
这个字符串,其实就是我向串发发送的命令。
说明:
串口已经读写方式打开,并且可以正常读取数据;这个过程没问题。
用write(fd,str_cmd_buf, strlen(str_cmd_buf));返回值字符串的长度(写入长度),表示正确;
但是就是串口那边没反应。(就像 命令没生效一样)。
尝试过strcpy(str_cmd_buf,"\r\n") 也尝试过在串尾追加str_cmd_buf[?]=0x0d和0x0a。也不行。
若用 echo "str_cmd_buf" >> 串口 ;立即成功,串口有回应;
又用system调用dos命令echo命令,也能成功,有回应。
就是write不行。何故?
------解决思路----------------------
你这样是对的,应该是数据没发出去吧,建议你先用串口监控软件监控串口调试软件发送的数据测试,然后用你的程序来对比有什么不同.
------解决思路----------------------
单独发送一个字符 0x0d
------解决思路----------------------
试试强制转换unsigned char.