STM32 HAL库串口发送4字节数据

	    uint32_t MotorEncoder = 0xff3c1A09;
	    uint8_t code[4];
	    code[0]=(uint8_t)(MotorEncoder>>24);
	    code[1]=(uint8_t)(MotorEncoder>>16&0xFF);
	    code[2]=(uint8_t)(MotorEncoder>>8&0xFF);
	    code[3]=(uint8_t)(MotorEncoder&0xFF);
	    HAL_UART_Transmit(&huart1 , code, 4, 0xff);

串口发送4字节的数据,从别人那里找到的代码,但是别人的代码有点小问题,修改了一下发出来,试验过了可以正常显示

 

 

 

如果加了DMA

	    uint32_t MotorEncoder = 0xff3c1A09;
	    uint8_t code[4];
	    code[0]=(uint8_t)(MotorEncoder>>24);
	    code[1]=(uint8_t)(MotorEncoder>>16&0xFF);
	    code[2]=(uint8_t)(MotorEncoder>>8&0xFF);
	    code[3]=(uint8_t)(MotorEncoder&0xFF);
	    HAL_UART_Transmit_DMA(&huart1 , code, 4);

发送24字节

uint64_t MotorEncoder = 0xff3c1A0155654584;
uint64_t MotorEncoder2 = 0xf2f3c1A015565458;
uint64_t MotorEncoder3 = 0xfc2f3c1AA0155654;
uint8_t code[24];
code[0]=(uint8_t)(MotorEncoder>>56);
code[1]=(uint8_t)(MotorEncoder>>48);
code[2]=(uint8_t)(MotorEncoder>>40);
code[3]=(uint8_t)(MotorEncoder>>32);
code[4]=(uint8_t)(MotorEncoder>>24);
code[5]=(uint8_t)(MotorEncoder>>16&0xFF);
code[6]=(uint8_t)(MotorEncoder>>8&0xFF);
code[7]=(uint8_t)(MotorEncoder&0xFF);
code[8]=(uint8_t)(MotorEncoder2>>56);
code[9]=(uint8_t)(MotorEncoder2>>48);
code[10]=(uint8_t)(MotorEncoder2>>40);
code[11]=(uint8_t)(MotorEncoder2>>32);
code[12]=(uint8_t)(MotorEncoder2>>24);
code[13]=(uint8_t)(MotorEncoder2>>16&0xFF);
code[14]=(uint8_t)(MotorEncoder2>>8&0xFF);
code[15]=(uint8_t)(MotorEncoder2&0xFF);
code[16]=(uint8_t)(MotorEncoder3>>56);
code[17]=(uint8_t)(MotorEncoder3>>48);
code[18]=(uint8_t)(MotorEncoder3>>40);
code[19]=(uint8_t)(MotorEncoder3>>32);
code[20]=(uint8_t)(MotorEncoder3>>24);
code[21]=(uint8_t)(MotorEncoder3>>16&0xFF);
code[22]=(uint8_t)(MotorEncoder3>>8&0xFF);
code[23]=(uint8_t)(MotorEncoder3&0xFF);

HAL_UART_Transmit_DMA(&huart1 , code, 24);
HAL_Delay(3000);

 

你可能感兴趣的:(stm32,C语言)