pic 16 f1947 两路usart

晶振32M

void init_uart_1(void)//串口1 wifi串口                                                         uart1
{


    TRISCbits.TRISC6=1;
    TRISCbits.TRISC7=1;
TX1STA=0X24;   //txen=1  异步  brgh=1
RC1STA=0X90; // 使能串口  使能接收
BAUD1CON=0X60;  //接收器空闲  电平不反向 
    BAUD1CONbits.BRG16=0;// 232 速率115200  使用高速波特率
    SPBRG=16;//010; 9600 207  115200 16
    RC1IE=0; //先不使能接收中断
TX1STAbits.TXEN=0x01; //发送使能
TX1IE=0;//禁止发送中断
PEIE=1;   //外部中断使能
GIE=1; //总中断使能
}


void sendchar(unsigned char data)
{
 while (!TX1STAbits.TRMT);
    TX1REG = data;    


}
void send(unsigned char *p)
{


     unsigned char length=0;
      length =strlen(p);
        for (length;length>0;length--)
        {
            sendchar(*p);
            p++;
        }
}
void send_data(unsigned char *p)
{


     unsigned char length=43;
     
        for (length;length>0;length--)
        {
            sendchar(*p);
            p++;
        }
}


void init_uart_2(void)//逆变器数据                                                                 uart2
{
    
    TRISGbits.TRISG1=1;
    TRISGbits.TRISG2=1; //根据文档置1 为rx tx 口
    ANSELGbits.ANSG1=0;
    ANSELGbits.ANSG2=0;
 //    ANSELGbits.ANSELG=0;
 ///   AN15=0;AN14=0;
   
TX2STA=0X20; //txen=1  异步0  brgh=0
RC2STA=0X90;// 使能串口  使能接收
BAUD2CON=0X60;//接收器空闲  电平不反向 
BAUD1CONbits.BRG16=0; //000
SP2BRGL=207;//2400
SP2BRGH=0;
RC2IE=0x01;
TX2STAbits.TXEN=0x00;
TX2IE=0x00;
PEIE=1;   //外部中断使能
GIE=1; //总中断使能
 //   RT485=0;//485 处于接收状态

}


if((RC1IF==1)&&(RC1IE==1)) //中断处理
{
RC1IF=0;
if((RC1STAbits.FERR==1)||(RC1STAbits.OERR==1))
{
RC1STAbits.SPEN=0;
RC1STAbits.SPEN=1;
}
else
{

            tempbuffer[rx_cont_1] = RC1REG;
            rx_cont_1++;
            wifi_rxcount=0;
     
        }
    }
if((RC2IF==1)&&(RC2IE==1))
{
RC2IF=0;
if((RC2STAbits.FERR==1)||(RC2STAbits.OERR==1))
{
RC2STAbits.SPEN=0;
RC2STAbits.SPEN=1;
}
else
{

rxbuffer_2[rx_cont_2] = RC2REG;
rx_cont_2++;
            if(rx_cont_2==16)
            {
                rx_cont_2=0;
rxd_over = 1;
            }
         }
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值