51单片机串口通信以及printf调试
串行通信
不知道你们写单片机程序的时候有没有烦恼,它没有想c语言的dos窗口,没有java的运行窗口,没有python的控制台,有时候想输出一条调试信息却无法做到,下面通过简单的方法,将调试信息通过51单片机的串口输出到串口。
1.串口初始化
只介绍本案例中需要使用的一些知识,串口初始化主要是选择串口工作方式和设置波特率。
串口工作方式
通过SCON寄存器中的SM0和SM1设置工作方式,REN为是否允许接收,一般设置这三个即可;
SM0 = 0;
SM1 = 1; //设置工作方式2,波特率可调
REN = 1; //允许接收
/*或者直接对SCON整体赋值*/
SCON = 0x50;
波特率设置
波特率是通过定时/计数器T1的溢出值设置的,先确定要使用的波特率,然后通过波特率求出T1的溢出值,计算出计数初值,并对T1进行初始化。
PCON = 0X00; //波特率不加倍
TMOD = 0X20; //选择T1计数器工作方式2
TH1 = 0XFD;
TH1 = 0XFD; //设置波特率
TR1 = 1; //启动定时/计数器
通过软件直接生成串口初始化代码
可以直接使用stc的下载程序软件直接生成初始化代码


3006

被折叠的 条评论
为什么被折叠?



