我知道这个问题已被多次询问,无论如何我没有找到并回答我的具体案例:
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)
如何解决此警告? 提前谢谢!
答案 0 :(得分:3)
这是因为您无法通过传输单个字节的SPI例程传输双字节值。
您应该可以通过两个单独的呼叫来完成:
SPI2_Tx(DVC_CTR2, 0x10);
SPI2_Tx(DVC_CTR2, 0x00);
如果必须一次传输16位,请查找采用uint16_t
的其他例程。