初级会员

- 积分
- 125
- 金钱
- 125
- 注册时间
- 2019-11-7
- 在线时间
- 56 小时
|
50金钱
本帖最后由 aadwacf 于 2021-10-13 16:58 编辑
void USART_SendData(USART_TypeDef* USARTx, uint32_t Data)
{
assert_param(IS_USART_ALL_PERIPH(USARTx));
USARTx->DR = (( Data & (uint32_t)0xff000000 ) >>24);
USARTx->DR = (( Data & (uint32_t)0xff0000 ) >>16);
USARTx->DR = (( Data & (uint32_t)0xff00 ) >>8);
USARTx->DR = ( Data & (uint32_t)0xff ) ;
while(__HAL_UART_GET_FLAG(USART1, USART_FLAG_TC)==RESET);
}
STM32F4xx的HAL库里没有USART_GetFlagStatus(USART1, USART_FLAG_TC)函数,有没有其他方式可以发送32位数据?
我使用HAL库里的__HAL_UART_GET_FLAG来检车标志位,为什么系统报错?
..\SYSTEM\usart\usart.c(118): error: #136: struct "<unnamed>" has no field "Instance"
|
最佳答案
查看完整内容[请看2#楼]
uint32_t data;
uint8_t buff[4];
buff[0]=(uint8_t)(data>>24);
buff[1]=(uint8_t)(data>>18&0xFF);
buff[2]=(uint8_t)(data>>12&0xFF);
buff[3]=(uint8_t)(data&0xFF);
HAL_UART_Transmit(&huart1 , buff, 4, 0xff);
这样发送的话,接收到的是32位数据还是4个8位数据,从电脑串口上看是4个8位数据
|