//========================================================================================================
//函数名: SUSendByte()
//参 数:
//返 回:
//说 明: 发送一个字节
//========================================================================================================
void SUSendByte(uint8_t dat)
{
u8 i = 0;
u16 temp = dat;
temp |= 0xF00; //把停止位加上
EnableSUTXTimer(); //初始化定时器,周期为104us,不需要中断
SU_TX_L();
while(1)
{
if(0 != __HAL_TIM_GET_FLAG(&SUTXTimer, TIM_FLAG_UPDATE))//等待中断溢出
{
__HAL_TIM_CLEAR_FLAG(&SUTXTimer,TIM_FLAG_UPDATE); //清溢出标志
if(temp & 0x01)
SU_TX_H();
else
SU_TX_L();
temp >>= 1;
i++;
if(10 <= i)
break;
}
}
SU_TX_H();
HAL_TIM_Base_Stop(&SUTXTimer); //停止定时器
}
|