PIC16F877A串口发送字符串问题串口发送字符串问题
PIC16F877A串口发送,查询方式,就为了调出这个费了我一天时间,原来是串口芯片电压问题,现总结如下:
1、注意232串口芯片供电电压,有5V和3.3V的 2、注意TXD、RXD接线,单片机的TXD接232芯片的
R2OUT,单片机的RXD接232芯片的T2IN 3、注意ESP8266的UTXD接MCU的RX,URXD接MCU的TX
4、注意ESP8266的UTXD接232的T2IN,URXD接232的R2OUT 5、串口波特率设置成9600 6、注
意连接线的可靠性,如果用线连的话一定要检查线和插座是否稳定连接 7、系统连线如下图所示
PIC16F877A串口发送,查询方式,就为了调出这个费了我一天时间,原来是串口芯片电压问题,现总结如下:
1、注意232串口芯片供电电压,有5V和3.3V的
2、注意TXD、RXD接线,单片机的TXD接232芯片的R2OUT,单片机的RXD接232芯片的T2IN
3、注意ESP8266的UTXD接MCU的RX,URXD接MCU的TX
4、注意ESP8266的UTXD接232的T2IN,URXD接232的R2OUT
5、串口波特率设置成9600
6、注意连接线的可靠性,如果用线连的话一定要检查线和插座是否稳定连接
7、系统连线如下图所示
PIC16F877A串口发送 - allegro_tyc - allegro_tyc的博客
//以下是串口发送程序
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B32);
void delay2ms(uint x)
{
uint a,b;
for(a=x; a>0; a--)
for(b=152; b>0; b--);
}
void UART_SendByte(unsigned char dat)
{
TXREG=dat;
while(TRMT==0);
}
void serial_init()
{
TRISC=0xbf;//设置RX为输入,TX为输出
TXSTA=0x24;
RCSTA=0x80;
SPBRG=0x33;//本人使用的是8MHz晶振,9600=8000000/(16*(X+1))->X=51->X=0x33
GIE=1;
PEIE=1;
RCIE=1;
}
void main()
{