神奇!IAR编译这么牛我也是醉了。。。。

2019-07-19 21:18发布

同样的两份代码! [mw_shl_code=c,true]void SPI_Write_S(u8 *pBuffer, u16 NumByteToWrite) { while(NumByteToWrite--) { SPI_SendByte(*pBuffer); pBuffer++; Delay(0xffff); } }[/mw_shl_code]
[mw_shl_code=c,true]void SPI_Write_Str(u8 *pBuffer, u16 NumByteToWrite) { while(NumByteToWrite--) { SPI_SendByte(*pBuffer); pBuffer++; Delay(0xffff); } }[/mw_shl_code] 注意看哦,只有函数名字不同,内部代码完全一样。 SPI_Write_S是放在main.c中得,而SPI_Write_Str是放在spi.c中的。
但是,当我在主程序中调用的时候。SPI_Write_S输出就很正常, 而SPI_Write_Str则出现各种丢包。。。。求解!
再加上实际运行结果,更有说服力: u8 *str = "(B) "; 调用main.c的SPI_Write_S(str, 4);

而调用spi.c的SPI_Write_Str(str, 4);

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。