This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294NCPDT:epi.h、ble_central.c 撇号:0x92字节奇怪、以代替普通0x37字节

Guru**** 657500 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1217105/tm4c1294ncpdt-epi-h-ble_central-c-apostrophe-strange-0x92-byte-in-place-of-plain-0x37-byte

器件型号:TM4C1294NCPDT

早上好!

在每个文件中:

tivaware_c_series_2_1_4_178/driverlib/epi.h
TivaWare_C_Series-2.2.0.295/driverlib/epi.h

在12个地方使用奇怪(非纯 ASCII) 0x92撇号代替纯 ASCII 0x37代码。

我使用的是使用 UTF-8的波兰语字母,在解码"epi.h"文件时,我在 Python 中得到了错误3 :

UnicodeDecodeError:'UTF-8编码解码器无法解码位置15481:无效的起始字节0x92

使用单引号(ASCII 十六进制代码0x37)时、此错误消失。

TivaWare 中的几乎所有*。c/*。h 文件均使用普通的0x37撇号、仅使用"epi.h"(以及"tivaware_c_serial_2_1_4_178/examples/boards/dk-tm4c129x/ble_central/ble_central.c")使用0x92代码表示撇号字符。

祝你一切顺利。

Piotr Kasprzyk

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Piotr:

     我打开  tivaware_c_series_2_1_4_178/driverlib/epi.h、并删除几乎所有内容、但文件中只包含几行"勿"。 然后我将修改后的文件上传到在线 ASCII 转换器中、它会生成0x27作为 撇号。 BTW、我想 YO 是指所有其他文件使用0x27、而不是0x37。 我不知道您为什么会看到错误。 在任何情况下、如果可以解决问题、您可以随意修改 epi.h 文件。 Tivaware 已保持稳定、并且目前没有任何更新计划。  

     这是我在记事本++中打开时的原始 epi.h。 我看到"不"、而不是"不"。  

     以下是我用于上传到在线转换器的修改文件。

     这是我使用的在线网站。  https://www.rapidtables.com/convert/number/ascii-hex-bin-dec-converter.html

     这是我得到的结果。  

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我同意、0x27/0x37错误是我自己的-它应该是十六进制0x27或十进制39。

    但0x92问题仍然存在:

    我从"">www.ti.com/.../2.1.4.178"下载了 SW-TM4C-2.1.4.178.exe (文件:SW-TM4C-2.1.4.178.exe -用于 TM4C 系列的171094 K TivaWare) 、其中包含一个长度为28124字节的文件 C:\ti\TivaWare_C_Series-2.1.4.178\driverlib\epi.h。

    我已放入该原始文件以检查 https://www.ciri.pl/epi.h

    0x92问题仍然存在、 www.rapidtables.com 在解释它时遇到问题-在一些奇怪的转换后、值显示为 FFFD (在图片上标有红线):

    我使用了 Linux 标准"od"(八进制转储、十六进制+ TXT 模式)命令来显示、其中0x92字节位于:

    我可以看到12个红色标记的"92"字节。

    我编写了简短的 Python 代码、以显示偏移量0x3c79 (第一个0x92字节的偏移量)的字节值、其中显示值:0x92 (十六进制)和146 (十进制):

    在 Windows 下、我已经使用了"certutil"命令来生成和显示0x3c79偏移量上的0x92字节(标记为红色):

    所以我认为有问题的0x92字节实际上在这个文件中-我可以在 Linux 和 Windows 下进行检查。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     我只是在 Chrome 浏览器中打开您的文件,它显示"不正确"。 我不擅长如何在不同的语言包中呈现字体。 正如我说过的、您 可以自由地修改该文件。 您能试一下吗? 也许在您自己的平台中重新键入相同的行、看看它们是如何产生的。 如果它正确渲染、您可以删除原始行。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在这张屏幕截图上、您标记了2个不同的撇号形状-如果您仔细看、它们是不同的。 两个为撇号、但一个为纯 ASCII 0x27、另一个为 Windows 撇号、代码为0x92。 我在"don.t"中输入了一个点(而不是撇号)、因为 ASCII+HEX 转换器会自动将0x7F 以上的代码替换为点(ASCII 表示128-255字节)。 谢谢,我已经清理了我的版本的"epi.h",现在我可以工作:)再次感谢!