stm32怎么用printf多个串口同时发送

stm32怎么用printf多个串口同时发送,第1张

1、 添加printf的头文件 #include <stdioh>

2、重写int fputc(int ch, FILE f)函数

int fputc(int ch, FILE f);

函数

int fputc(int ch, FILE f)

{

USART_SendData(USART1, (uint8_t) ch);

while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);

return ch;

}

3、修改一下选中Use MicroLIB Target——Code Generation——选中Use MicroLIB

可以使用gmtime函数或localtime函数将time_t类型的时间日期转换为struct tm类型(年、月、日、时、分、秒)。

使用time函数返回的是一个long值,该值对用户的意义不大,一般不能根据其值确定具体的年、月、日等数据。gmtime函数可以方便的对time_t类型数据进行转换,将其转换为tm结构的数据方便数据阅读。gmtime函数的原型如下:struct tm gmtime(time_t timep);localtime函数的原型如下:struct tm localtime(time_t timep);将参数timep所指的time_t类型信息转换成实际所使用的时间日期表示方法,将结果返回到结构tm结构类型的变量。gmtime函数用来存放实际日期时间的结构变量是静态分配的,每次调用gmtime函数都将重写该结构变量。如果希望保存结构变量中的内容,必须将其复制到tm结构的另一个变量中。gmtime函数与localtime函数的区别:gmtime函数返回的时间日期未经时区转换,是UTC时间(又称为世界时间,即格林尼治时间)。localtime函数返回当前时区的时间。

转换日期时间表示形式time_t类型转换为struct tm类型示例:

#include <stdioh>

#include <timeh>

int main()

{

char wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};/指针字符数组/ time_t t;

struct tm p;

t=time(NULL);/获取从1970年1月1日零时到现在的秒数,保存到变量t中/ p=gmtime(&t); /变量t的值转换为实际日期时间的表示格式/

printf("%d年%02d月%02d日",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);

printf(" %s ", wday[p->tm_wday]);

printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec);

return 0;

}

注意:p=gmtime(&t);此行若改为p=localtime(&t);则返回当前时区的时间。

#include <stdioh>

void PrintStr();//函数声明

void main(void)

{

PrintStr();//函数调用

}

void PrintStr()//重写函数体

{

char str="I Love China!";

printf("%s",str);

}

有以下三种方式可以做到:

1 使用重定向函数freopen将标准输出重定向到对应的txt文件。

其使用方法为,在所有的系统输出前,调用

stdout = freopen("outtxt", "w", stdout);

outtxt即所要写入的txt文件名。

2 在执行时处理。

编译最终生成的为可执行文件,运行也是运行这个文件。

在运行文件时,可以通过重定向符号,将输出重定向到其它文件。

如果生成的可执行文件为myexe,那么在命令行调用

myexe > outtxt

即可将myexe的输出写入到outtxt中。

3 以上两种方法都是把所有的标准输出,包括printf, puts, putchar等,均输入到对应文件中。

如果要仅输出printf的结果,可以先打开文件,然后修改代码,把每个printf的调用修改对应的写文件函数。即printf(xxxx);修改为fprintf(fp, xxxxx);的形式。

其中fp为打开的文件指针。

fp=fopen("c:\\TCWIN\\recordtxt","r+");

这一句应该改为fp=fopen("c:\\TCWIN\\recordtxt"a");吧,以追加的形式,不过不一定是这个函数的问题,你可以看看程序的其他部分,全部程序一起调试才好找错误!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/11677842.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存