完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include #include #include #define uint unsigned int #define uchar unsigned char #define MCLK 12000000 #define RS485_TX PORTA|=BIT(PA6) //发送状态(输出低电平) #define RS485_RX PORTA&=~BIT(PA6) //接收状态(输出高电平) //#pragma interrupt_handler Uart485_RX:12 //串口接收中断函数声明 uchar RFLAG=0,NUM=0,RDATA[20]; /******************************************* 函数名称: Uart_init 功 能: 异步串口初始化 参 数: baud--设置的波特率 返回值 : 无 /********************************************/ void Uart485_init(uint baud) { baud=MCLK/16/baud-1; //波特率最大为65K UCSRB=0x00; UCSRA=0x00; //控制寄存器清零 UCSRC=(1< UBRRH=baud>>8; //设置波特率 UCSRB=(1< DDRD|=0X02; //配置TX为输出(很重要) DDRD&=~BIT(PD0);//PD0:RX为输入状态 DDRD|=BIT(PD1); //PD1:TX为输出状态 PORTD|=BIT(PD0);//带上拉输入 } /******************************************* 函数名称: Uart_RX 功 能: 异步串口接收 参 数: 无 返回值 : 无 /********************************************/ void Uart485_RX(void) { //unsigned char temp; UCSRB&=~BIT(RXCIE); //关闭接收中断 //temp=UDR; //if(temp!=' |