宏定义大小端转换,使用方便,64位的需要自己转换了__REV16 __REV
想省事使用HAL_UART_Transmit直接传输16位/32位,但大小端出问题了,得转换一下再传输
uint8_t type[2];
W25QXX_TYPE=W25QXX_ReadID();
type[0]=W25QXX_TYPE>>8;
type[1]=(uint8_t)W25QXX_TYPE;
W25QXX_TYPE=__REV16(W25QXX_TYPE);//16位数值的大小端转换
HAL_UART_Transmit (&huart1,(uint8_t*)&W25QXX_TYPE,2,500);
HAL_UART_Transmit (&huart1,type,2,500);
以上两个数值一样,串口打印验证
W25QXX_SIZE=W25QXX_ReadCapacity();
W25QXX_SIZE=__REV(W25QXX_SIZE);//32位数值的大小端转换
HAL_UART_Transmit (&huart1,(uint8_t*)&W25QXX_SIZE,4,500);