STM32F407串口发送数据缺失最后一个字节

在发送特定格式的串口数据时,遇到最后一个字节在移位寄存器里出不去,要下一次发送才能出去的问题。

数据原型:uint8_t 类型的数组

	TX_16_Data2[0]=0x7E;
	TX_16_Data2[1]=0x03;
	TX_16_Data2[2]=0x12;
	TX_16_Data2[3]=0x11;
	TX_16_Data2[4]=0xEF;
	Usart_SendString(USART1,TX_16_Data2);

 发送函数:

/*****************  发送一个字符 **********************/
void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch)
{
	/* 发送一个字节数据到USART */
	USART_SendData(pUSARTx,ch);
		
	/* 等待发送数据寄存器为空 */
	while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);	
}

/*****************  发送字符串 **********************/
void Usart_SendString( USART_TypeDef * pUSARTx, char *str)
{
	unsigned int k=0;
  do 
  {
      Usart_SendByte( pUSARTx, *(str + k) );
      k++;
		  while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET)
			{}
  } while(*(str + k)!='\0');
  
  /* 等待发送完成 */

}

 虽然第一次多发送一个空字节,就能满足一次的要求。但是没有找到问

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值