解析void u1_printfchar fmt unsigned int ilength; va_list ap; va_startapfmt; vsprintfUsart1_TxBufffmtap; va_endap; length=strlenconst charUsart1_TxBuff; whileUSART1-SR&0X40==0; fori = 0;i length
这是一个可变参数的串口输出函数。函数的参数包括一个格式化字符串 fmt 和可变数量的参数。使用了可变参数列表 va_list 和相关宏 va_start、va_end 和 vsprintf 来处理可变参数。
函数首先将可变参数列表中的参数根据格式化字符串 fmt 进行格式化,然后将格式化后的字符串存储到全局变量 Usart1_TxBuff 中。
接着,函数计算出 Usart1_TxBuff 的长度 length,并通过循环将 Usart1_TxBuff 中的每个字符逐一发送到 USART1 数据寄存器 DR 中,等待发送完成后再发送下一个字符。最后,函数返回。
原文地址: https://www.cveoy.top/t/topic/fy1H 著作权归作者所有。请勿转载和采集!