PIC18F25K22发送

2019-03-25 18:56发布

这是我写的一个简单的串口程序,用串口助手发数 ,当芯片收到数以后再把它发送出来
#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);
}
}
}

但是发数之后没有再发送出来
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
mzb2012
2019-03-27 22:10
shimingyan1992 发表于 2016-11-25 11:53
1、发送字符正常;
2、测试接收该如何测试呢 除了用串口助手请指教

串口助手发一个字符A,收到确认是字符A,让指示灯或蜂鸣器闪一下。

证明2点,可以进串口中断,并且收到的字符正确

一周热门 更多>