想用PIC16F1783实现串口自发自收,外部晶振用的16M晶振,程序如下:
#include<pic.h>
#define uchar unsigned char
#define uin?t unsigned int
__CONFIG(0x0982);
__CONFIG(0x1AFF);
uchar recdata;
void Delay_ms(uint xms)
{
int i,j;
for(i=0;i<xms;i++)
{for(j=0;j<71;j++);}
}
void initUSART()
{
SPBRG=0x19;
TXEN=1;
CREN=1;
SYNC=0;
SPRN=1;
TXSEL=0;
RXSEL=0;
SCKP=0;
BRG16=0;
RCIE=1;
TXIE=1;
TRISC6=0;
TRISC7=1;
TXSTA=0X24;
RCSTA=0X90;
GIE=1;
PEIE=1;
}
void main()
{
initUSART()
while(1)
{
PORTC=recdata;
}
Delay_ms(10);
}
void interrupt usart(void)
{
if(RCIF)
{
RCIF=0;
recdata=RCREG;
TXREG=recdata;
}
}
用示波器测试晶振是可以起振的,用串口调试助手自发自收,波特率设置9600,发送的时候电路板上接收指示灯闪烁,但是发送指示灯毫无反应,请教高手指点一下上述程序哪里有问题,万分感谢。
此帖出自
小平头技术问答
一周热门 更多>