【友善串口调试助手Serial Port Utility以ASCII形式发送字节数据显示0D的问题】

这篇具有很好参考价值的文章主要介绍了【友善串口调试助手Serial Port Utility以ASCII形式发送字节数据显示0D的问题】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

在做DS18B20温度检测时自己想通过UART串口接收上位机发出的指令来进行相应的操作,但是第一次上板未能成功,所以回过头来逐步排查问题


背景描述

自己考虑FPGA与DS18B20数据交互对DS18B20的控制可分为三类:复位、写操作与读操作,每种操作后面还需跟相应具体的指令,如SKIP ROM [CCh]、CONVERT T [44h]属于写操作一类;READ SCRATCHPAD [BEh]属于读操作。若通过串口控制则设置一个两字节的寄存器:

reg [15:0] rx_data_reg;

rx_data_reg[15:8]指示命令种类,rx_data_reg[7:0]指示命令种类下具体的指令。

在UART接收模块设置的数据位是8bit:

module uart_rx_byte (clk, rst_n, rxd, dout, rx_done);
 input clk, rst_n, rxd;
 output reg [7:0]dout;
 output reg rx_done;

dout为UART的rx端接收到的数据,由于需要的寄存器为2字节,所以还需一个移位寄存器:

always@(posedge clk or negedge rst_n)begin 
if(!rst_n)begin
        rx_data_reg <= 0;
    end 
else if(rx_data != rx_data_reg[7:0])begin
        rx_data_reg <= {rx_data_reg[7:0], dout};
    end     
else begin
        rx_data_reg <= rx_data_reg;
    end
end //always end

上述代码的含义为当串口接收到不一样的数据时,从rx_data_reg的右端“塞入”新的字节;

当在串口助手以ASCII形式发送字符“c”时,SignalTap显示如下:

友善串口助手,fpga开发,驱动开发

由波形图可知当前FPGA接收到的数据最后1字节是0Dh,不是想要的字符“c”的ASCII码


原因分析:

 由于之前验证过UART接收模块的正确性,所以这里考虑应该是串口接收而非rx模块的问题,根据发送数据是字符“c”的ASCII码和接收到的0Dh值可联想到搜索0Dh所代表ASCII的值:

友善串口助手,fpga开发,驱动开发

0D代表回车键,接着检查串口助手是否在字符后面多加了回车,发现也没有: 

友善串口助手,fpga开发,驱动开发

此时检查寄存器rx_data_reg里的数据为630Dh,63为字符“c”的ASCII码值,说明数据发送成功,只是在末尾加入的回车的操作,此时检查串口助手的设置, 发现软件自动勾选了“当发送后自动添加换行(只在文本模式下有效)”,换行设置默认的是回车:

友善串口助手,fpga开发,驱动开发

解决方案:

由以上分析可知,取消默认勾选即可解决ASCII码发送显示多余数据问题:

友善串口助手,fpga开发,驱动开发

友善串口助手,fpga开发,驱动开发

补充知识:

carriage return意为回车, line feed意为换行,回车只是只回到当前行的行首,换行只是只向下移动一行,组合起来才是我们熟悉的移动至下一行的行首;

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做"回车",告诉打字机把打印头定位在左边界;另一个叫做"换行",告诉打字机把纸向下移一行。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。Unix系统里,每行结尾只有"<换行>",即"\n";Windows系统里面,每行结尾是"<回车><换行>",即"\r\n";Mac系统里,每行结尾是"<回车>"。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。文章来源地址https://www.toymoban.com/news/detail-860505.html

到了这里,关于【友善串口调试助手Serial Port Utility以ASCII形式发送字节数据显示0D的问题】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 串口调试助手 安卓版 附下载地址

    平时工作中和硬件同事对接的比较多,软件和硬件的通讯,串口用的也比较多的。在网上找了很多串口调试工具,大都年代久远,没有继续更新维护的了。 于是,自己抽空写了一个:串口调试助手。基于Android-SerialPort-Api修改, 最低支持安卓5.x, 支持armeabi-v7a, arm64-v8a, x86, x

    2024年02月05日
    浏览(31)
  • 使用QtCreator C++编写串口调试助手

    Qt小白一枚,喜欢嵌入式应用,以前都是使用别人的串口调试助手,学习了C++以后,自己也尝试着做了简单的串口调试助手,分享给大家吧,希望能帮助到大家,如果有错误,请大家指正。话不多说开干! 1.首先看一下我设计的界面(我这里比较简单,大家可根据自己的需求进

    2024年02月06日
    浏览(38)
  • 关于串口调试助手上面的DTR和RTS

    开发调试过程中,突然XCOM串口调试助手无法接发数据,而用了sscom却可以实现正常功能,emo了很久,对比了两个软件对串口的设置,包括波特率,停止位,校验位等设置,也没发现异端,以为是sscom这个软件禁用了XCOM。。。。。。。。。 后来仔细比对发现,XCOM的DTR选型被取

    2024年02月11日
    浏览(34)
  • 【C++ QT项目2】——高仿安信可串口调试助手

      串口调试助手是一种串口通讯测试工具,它可以用于打开、关闭、配置串口,读写串口数据等常见的串口通信操作。 在嵌入式系统调试、模块测试、通讯协议分析等领域都具有广泛的应用。   串口助手通常提供GUI界面,让用户可以更加方便、直观地进行串口通讯测试

    2024年02月19日
    浏览(37)
  • 蓝牙串口调试助手通过PC蓝牙发送数据给ESP32同时在串口上显示

    OK,好久没有更新Blog啦 今天把之前积累的代码放上,给需要学习的程序猿们使用 我还是不太喜欢写文字,倒是比较喜欢客套,哈哈 硬件图: ESP32和USB-micro-B数据线一根 蓝牙串口调试助手通过PC蓝牙发送数据给ESP32同时在串口上显示 具体代码如下:

    2024年02月09日
    浏览(35)
  • A_A05_002 sscom33串口调试助手使用

    目录 一、软件获取 二、软件基本功能介绍         1、接收区         2、串口通信参数配置区         3、串口打开关闭与其他设置区域         4、手动发送区域         5、多文本发送区         6、辅助区域 三、注意事项         网盘链接      直戳跳转

    2023年04月16日
    浏览(31)
  • STM32数据可视化显示——纸飞机串口调试助手的使用

    本人在开发STM32的过程中,数据都是通过XCOM串口调试助手进行展示的,但这样的话,数据就做不到图像化、多样化处理的显示,使得一些连续的数据无法通过图像来直观表达 感兴趣的朋友可以点进链接进行下载哦 http://blog.comassistant.cn/ 上图所示,为纸飞机调试助手的界面,可

    2023年04月12日
    浏览(39)
  • Rust UI开发(四):iced中如何添加菜单栏(串口调试助手)

    注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 这是一个系列博文,本文是第四篇,前三篇链接: 1、Rust UI开发(一):使用iced构建UI时,如何在界面显示中文字符 2、Rust UI开发(二):iced中如何为窗口添加icon图标 3、Rust

    2024年02月03日
    浏览(60)
  • QT串口调试助手开发教程:上位机接收数据解析数据帧+多通道波形显示+数据保存

    在该设计中主要需要解决的问题就是接收单片机采集到的数据并在上位机将数字实时的通过波形显示出来,然后上位机要有保存下数据文件的功能,便于后续的软件读取数据做进一步的分析处理。有些人吃相难看,无底线,无道德,鉴于串口上位机会被广泛使用,撰写该教程

    2024年02月07日
    浏览(37)
  • 【ESP01S】使用串口调试助手,发送AT指令收回的是乱码/重复一遍AT指令发回的问题

    在使用ESP01S,外观如下图所示: 使用串口调试助手,发送AT指令出现异常情况,比如返回乱码或者重复一遍用户发送的内容 根据文章的问题推测,原因主要有以下两点: 1、硬件供电不足 2、固件烧录问题 USB转串口模块的驱动能力很弱,所以首先就排除了用此模块供电的方式

    2023年04月21日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包