在物联网开发中,常要和esp8266wifi芯片通讯,因为8266默认为115200则要设置单片机为115200。
博主是用的是c52芯片,11.0592的晶振;以下为串口为115200的收和发的完整程序。
#include <reg52.h>
#include <stdio.h>
#include <stdlib.h>
#include <intrins.h>
char str[50];
int i=0, t=0,flag=0, en=0;
//只是适用于52系列,使用定时器2
//以下为自定的波特率产生函数
//使用例子 set52_baudrate(11.0592, 115200)
void set52_baudrate(float frequency,long int baudrate){unsigned int itmp;
unsigned char tlow,thigh;
TMOD = 0x20;
itmp=(int)(65536-(frequency*1000000)/(baudrate*32));
thigh=itmp/256;
tlow=itmp%256;