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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C - 警告[pe069]整数转换导致截断相关的知识,希望对你有一定的参考价值。

我知道这个问题已被多次询问,无论如何我没有找到并回答我的具体案例:

IAR Embedded Workbench在编译时重新发出此警告:

“警告[pe069]整数转换导致截断”在线:

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的不同例程。

以上是关于C - 警告[pe069]整数转换导致截断的主要内容,如果未能解决你的问题,请参考以下文章

CC2530 Zigbee 开发常见问题

CC2530 Zigbee 开发常见问题

警告:从/到不同大小的整数转换为/从指针转换

定位因整数除法导致的数值错误

C指针和数组:[警告]赋值使指针从整数而不进行强制转换[关闭]

为啥这个 type_traits 代码会给我一个整数到指针转换警告?