


INSEL0 = (PINSEL0 & 0xfffffff0) | 0x05; // 选择管脚为UART0 U0LCR = 0x80; // 允许访问分频因子寄存器 Fdiv = (Fpclk / 16) / bps; // 设置波特率 U0DLM = Fdiv / 256;U0DLL = Fdiv % 256;U0LCR = 0x07; // 禁止访问分频因子寄存器 U0IER = 0x05; // 允许接收和发送中断U0FCR = 0x87; // 初始化FIFO}/* CAN初始化 */void InitCAN(eCANNUM CanNum){ HwEnCAN(CanNum); //硬件使能CAN控制器 while (SoftRstCAN(CanNum)); //软件复位CAN控制器 while (SetErWarmVal (CanNum,USE_EWL_CAN[CanNum])); //设置错误警告寄存器 while (SetCANbaudRate (CanNum,USE_bTR_CAN[CanNum])); //初始化波特率 VICDefVectAddr =(INT32U)CANIntPrg; //初始化中断 VICIntEnable |=(1本文设计的RS485-CAN总线转换器的电路简单可靠,操作方便。通过它,任何RS485设备都可以无需做任何修改就可以直接放到CAN网络中使用。在总线转换器的软件设计中一般应该遵守的一条原则是:不要将其功能设计的过于复杂。因为它的主要任务是将数据以最快的速度转发。至于流量和差错控制应由通信双方的应用层来完成。而本总线转换器的软件设计,很好地达到了这一要求。| 欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |