51单片机Keil C51下使用printf输出到串口,为何初始化了串口之后就可以使用了

51单片机Keil C51下使用printf输出到串口,为何初始化了串口之后就可以使用了,第1张

因为是这样的,在Keil\C51\LIB目录下有个putcharc文件,printf函数会调用该文件中的

putchar函数,putchar里面的使用的寄存器都是标准51的(如TI,SBUF),它

们的地址是固定的,由此可知printf函数只针对串口0。

如果想让printf函数支持串口1或串口2。。。那么修改putchar函数的寄存器即可,比如SBUF改为SBUF1。但是能不能用printf函数对串口0,串口1。。。都适用呢

或者重定义putchar函数。

#include<reg51h>

#define uchar unsigned char

sfr AUXR=0x8e;

sfr S2CON=0x9a;

sfr S2BUF=0x9b;

sfr BRT=0x9c;

sfr IE2=0xaf;

#define S2RI=0x01

#define S2TI=0x02

uartinit()

{

S2CON=0x50;

BRT=-12000000/32/9600;

AUXR=0x14;

IE2=0x01;

EA=1;

}

在STM32中,外围设备的配置思路比较固定。首先是使能相关的时钟,一方面是设备本身的时钟,另一方面如果设备通过IO口输出还需要使能IO口的时钟;最后如果对应的IO口是复用功能的IO口,则还必须使能AFIO的时钟。

其次是配置GPIO,GPIO的各种属性由硬件手册的AFIO一章详细规定,较为简单。

接着相关设备需要如果需要使用中断功能,必须先配置中断优先级,后文详述。

以上就是关于51单片机Keil C51下使用printf输出到串口,为何初始化了串口之后就可以使用了全部的内容,包括:51单片机Keil C51下使用printf输出到串口,为何初始化了串口之后就可以使用了、单片机stc12c5a60s2串口2工作方式0初始化子程序、简述stm32串口usart1的初始化步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9409357.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存