51單片機串口發(fā)送字符串三步走法
走兩步步看看,再走一步成功了!
基本步驟:
初始化串口
編寫發(fā)送字符串的函數(shù)
在主函數(shù)中調(diào)用發(fā)送字符串的函數(shù)
#include "reg51.h"
void init_serial()
{
? TMOD |= 0x20; //將定時器1設(shè)置為模式2
? TH1 = 0xFD; //設(shè)置波特率為9600
? SCON = 0x50; //設(shè)置串口工作方式
? TR1 = 1; //定時器1開始計數(shù)
}
void send_string(unsigned char *s)
{
? while(*s) //當(dāng)字符串s不為空時
? {
? ? SBUF = *s;? //將字符串s中的字符發(fā)送到串口
? ? while(TI == 0); //等待上一個字符發(fā)送完成
? ? TI = 0; //清除發(fā)送完成標(biāo)志位TI
? ? s++; //指向下一個字符
? }
}?
void main()
{
? init_serial(); //初始化串口
? send_string("Hello World!"); //發(fā)送字符串Hello World!到串口
}
該函數(shù)的參數(shù)是一個指向字符串的指針,函數(shù)會依次發(fā)送字符串中的每個字符,直到遇到字符串的末尾。TI是一個發(fā)送完成標(biāo)志位,發(fā)送一次字符之后要等待TI置為0之后才能發(fā)送下一個字符。
標(biāo)簽: