刚学51,串口通讯,卡壳了,P31,P30用示波器量了,没波形,看来程序没动作。
#include <reg51.h>
#include <string.h>
#define INBUF_LEN 4 //数据长度
unsigned char inbuf1[INBUF_LEN]="1234";
void init_serialcomm(void)
{
SCON=0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD=0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON=0x80; //SMOD=1;
TH1=0xF4; //Baud:4800 fosc=11.0592MHz
TR1=1; // timer 1 run
}
//向串口发送一个字符
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
//向串口发送一个字符串,strlen为该字符串长度
void send_string_com(unsigned char *str,unsigned int strlen)
{
unsigned int k=0;
do
{
send_char_com(*(str + k));
k++;
} while(k < strlen);
}
void Delay1ms(int x) //误差 0us
{
unsigned char a,b,c;
for(c=0;c<x;c++)
for(b=38;b>0;b--)
for(a=13;a>0;a--);
}
main()
{
init_serialcomm(); //初始化串口
while(1)
{
send_string_com(inbuf1,INBUF_LEN);
Delay1ms(300);
}
}
200字以内,仅用于支线交流,主线讨论请采用回复功能。