【问题标题】:Random Symbols Appearing in Keil Debug-Watch WindowKeil Debug-Watch 窗口中出现的随机符号
【发布时间】:2020-10-09 03:30:48
【问题描述】:

我的项目涉及在两个射频收发器模块(一个用作主发射器,另一个用作接收器)之间以无线方式发送 4 个 8 位数据。在接收器的端点上使用 Keil uVision5 的调试器(在我观察某些变量的观察窗口中),我注意到在模块的另一端接收到的数据是正确的,但符号出现在变量的一些(不是全部)的末尾价值观。

数据以如下结构体的形式发送:

typedef struct
{
   uint8_t Cmd;         // Command/Operation
   uint8_t DataLen;     // Length of Data
   uint8_t* DataBuff;   // 2 Bytes of data
} RFFrame_t;

static RFFrame_t _xTxFrame;    // variable that will hold the data to be transmitted

在某些情况下,“命令/操作”是:

#define SHUTTEROFF_CMD    ((uint8_t)0xDD)
...
_xTxFrame.Cmd = SHUTTEROFF_CMD;

“数据长度”是:

#define TX_BUFFER_SIZE     2
uint8_t TxLength = TX_BUFFER_SIZE;
...
_xTxFrame.DataLen = TxLength;

“数据缓冲区”是:

uint8_t aTransmitBuffer[TX_BUFFER_SIZE] = {17, 233};
...
_xTxFrame.DataBuff = aTransmitBuffer;

这是我看到的截图:

在上面的截图中,_xRxFrame.Cmd 是十六进制显示,而 _xRxFrame.DataLen、_xRxFrame.DataBuff[0] 和 _xRxFrame.DataBuff1 不是十六进制显示。

符号'Y'和'e'分别出现在0xDD和233的后面,这实际上不是代码错误,因为一切正常。我只是好奇为什么会这样。这些符号在调试窗口中随机出现是否正常?

谢谢!

【问题讨论】:

  • uchar 中只有 一个 字符,监视表以两种形式显示其中的一些:数字值和字符。没有什么“额外的”。不过,我无法解释为什么有些值是十六进制的,而有些是十进制的。也许是调试器配置。
  • 感谢您的解释!其他值不是十六进制的,因为我将它们配置为以十进制格式显示。
  • 请看:here 它显示了手表的配置方式。

标签: c embedded stm32 radio keil


【解决方案1】:

读取的值是 233 和 0xDD;并且它们被声明为 uchar。 如果您检查 ascii 表,它将匹配这些字符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2019-06-28
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多