这是我写的一个简单的串口程序,用串口助手发数 ,当芯片收到数以后再把它发送出来
#define uint unsigned int
#define uchar unsigned char
uchar Rec1Data;
void uart_init()
{
TRISC=0XD0;
TXSTA1&=0X8f; // (6)8位数据0,(5)禁止发送0,(4)异步模式0;
TXSTA1|=0X04; // (2)高速,
RCSTA1|=0x90; // (7)使能串口1;(4)使能接受1
RCSTA1&=0xBF; // (6)8位接受0;
TXSTA1bits.TXEN=1; // 使能 发送
TXSTA1bits.TRMT=1; // 发送器为空
BAUDCON1=0x48; // 接收操作处于空闲状态,16 位波特率发生器——SPBR启动看门狗 GH 和SPBRG
SPBRGH1=0;
SPBRG1=34; // 波特率为115200;
}
void write_dis(uchar write1_data)
{
TXREG1=write1_data;
while(!TXSTA1bits.TRMT);
}
void main ()
{
uart_init();
while(1)
{
if(PIR1bits.RC1IF)
{
// PIR1bits.RC1IF=0;
Rec1Data=RCREG1;
write_dis(Rec1Data);
}
}
}
但是发数之后没有再发送出来
此帖出自
小平头技术问答
串口助手发一个字符A,收到确认是字符A,让指示灯或蜂鸣器闪一下。
证明2点,可以进串口中断,并且收到的字符正确
一周热门 更多>