C - 警告 [pe069] 整数转换导致截断

C - Warning [pe069] integer conversion resulted in truncation

我知道这个问题已经被问过好几次了,反正我没有找到并回答我的具体情况:

IAR Embedded Workbench 在编译时返回此警告:

"Warning [pe069] integer conversion resulted in truncation"上线:

SPI2_Tx(DVC_CTR2,       0x1000);

其中 DVC_CTR2 是

#define DVC_CTR2                0x0F

和SPI2_Tx的定义是

static void SPI2_Tx(uint8_t pAddress, uint8_t pData)

如何解决此警告? 提前致谢!

这是因为您无法通过传输单个字节的 SPI 例程传输两个字节的值。

您应该可以通过两个单独的调用来完成:

SPI2_Tx(DVC_CTR2, 0x10);
SPI2_Tx(DVC_CTR2, 0x00);

如果您必须一次传输 16 位,请查找采用 uint16_t 的不同例程。