void Serial_SendNumber(uint32_t Number, uint8_t Length) { uint8_t i; for (i = 0; i < Length; i ++) { Serial_SendByte(Number / Serial_Pow(10, Length - i - 1) % 10 + '0'); } } int fputc(int ch, FILE *f) { Serial_SendByte(ch); return ch; } void Serial_Printf(char *format, ...) { char String[100]; va_list arg; va_start(arg, format); vsprintf(String, format, arg); va_end(arg); Serial_SendString(String); }
时间: 2024-04-02 07:31:44 浏览: 266
tc35_单片机_发短信控制继电器
这段代码也是用于STM32F10x芯片通过USART1串口发送数据的函数,但是它的功能比前面的函数更为强大。它包括了三个函数:Serial_SendNumber、fputc和Serial_Printf。其中,Serial_SendNumber函数用于发送一个32位无符号整数(Number)的指定位数(Length)的十进制表示,fputc函数用于向标准输出流(stdout)输出一个字符,Serial_Printf函数用于向USART1串口发送格式化字符串。
Serial_SendNumber函数的实现中,它通过调用Serial_Pow函数计算每一位的数字,并将其转换为ASCII码发送到USART1串口。
fputc函数的实现中,它通过调用Serial_SendByte函数向USART1串口发送一个字符,并返回它的ASCII码值。
Serial_Printf函数的实现中,它通过调用vsprintf函数将格式化字符串格式化为字符数组,再通过调用Serial_SendString函数发送到USART1串口。其中,vsprintf函数是C语言标准库中的函数,它可以将格式化字符串格式化为字符数组。
阅读全文