TaterLi 个人博客

16位寄存器工作在8位模式下的编译器缺陷

最近在实验一个在STM32上的SPI功能时候,发现一个缺陷,因为只要发送一个Byte,就没用到HAL库了,里面绕了好多圈,他绕好了我都发完好几次数据了.已经设置成发送8位的模式,一开始我的试验方法是这样的.

结果捕获到的数据是:

我明明已经设置成8Bit模式了啊.然后我试试改成8位模式传递参数.两个警告,先不管.

一切正常了.

此时的汇编.

改成这句话,编译就没警告了.

什么,汇编没变化.

是的,因为&和*抵消,然后又满足了转换关系,没错误而且代码没改变.运行也一切正常.算是陷阱吗?

 

退出移动版