📄 initial.h
字号:
#pragma CODE_SEG DEFAULT
//SCI 初始化 (有两个串口0和1)
//注意:倍频的时候,实际波特率为这里设置的2倍
void SCI_Initial(void)
{
//13位的波特率设置 : SCI baud rate = SCI module clock / (16 *SCIBR[12:0])
// SCI0BDH =0x03; //(* Page 396 *)
// SCI0BDL =0x41; //(* Page 396 *)//16M钟振,波特率600
//倍频的时候计算公式-波特率57600
SCI0BDL = (unsigned char)((16000000UL /* OSC freq */ / 2) / (57600/2)/* baud rate */ / 16/*factor*/);
//SCI Control Register 1,2
SCI0CR1 =0x00; //(* Page 397 *)
SCI0CR2 =0x2c; //(* Page 399 *)
//倍频的时候计算公式-波特率57600
SCI1BDL = (unsigned char)((16000000UL /* OSC freq */ / 2) / (57600/2)/* baud rate */ / 16/*factor*/);
//SCI Control Register 1,2
SCI1CR1 =0x00; //(* Page 397 *)
SCI1CR2 =0x2c; //(* Page 399 *)
}
//实时中断初始化
void RTIInit(void)
{
//48*1.024 ms
RTICTL = 0x7B; //set RTI prescaler
CRGINT = 0x80; //enable RTI interrupts
}
void CAN0_Initial(void)
{
//CAN pin定义
MODRR = 0x00;
DDRM = 0xFF;
//CAN控制0设定, 初始化模式请求, CAN模块使能
CAN0CTL0 |= 0x01;
while (!(CAN0CTL0 & 0x01));//******注意,是否需要修改
//标识符控制设置
CAN0IDAC = 0x00; //2个32 位接收滤波器
//标识符接收设置
CAN0IDAR0 = 0xFF;
CAN0IDAR1 = 0xFF;
CAN0IDAR2 = 0xFF;
CAN0IDAR3 = 0xFF;
CAN0IDAR4 = 0xFF;
CAN0IDAR5 = 0xFF;
CAN0IDAR6 = 0xFF;
CAN0IDAR7 = 0xFF;
//标识符过滤设置
CAN0IDMR0 = 0xff;
CAN0IDMR1 = 0xff;
CAN0IDMR2 = 0xff;
CAN0IDMR3 = 0xff;
CAN0IDMR4 = 0xff;
CAN0IDMR5 = 0xff;
CAN0IDMR6 = 0xff;
CAN0IDMR7 = 0xff;
//总线定时设置
CAN0BTR0 = 0x83;
CAN0BTR1 = 0xD8; //250kbps
//CAN控制1, 模式设置, CAN模块使能
CAN0CTL1 = 0x80; //CAN0 普通模式
//清INITRQ, 进入普通模式
CAN0CTL0 &= 0xfe;
while (CAN0CTL1 & 0x01);//******注意,是否需要修改
//接收中断使能
CAN0RIER = 0x01;
//发送缓冲区清空
CAN0TFLG = 0x07;
}
void CAN1_Initial(void)
{
//CAN pin定义
MODRR = 0x00;
DDRM = 0xFF;
//CAN控制0设定, 初始化模式请求, CAN模块使能
CAN1CTL0 |= 0x01;
while (!(CAN1CTL0 & 0x01));//******注意,是否需要修改
//标识符控制设置
CAN1IDAC = 0x00; //2个32 位接收滤波器
//标识符接收设置
CAN1IDAR0 = 0xFF;
CAN1IDAR1 = 0xFF;
CAN1IDAR2 = 0xFF;
CAN1IDAR3 = 0xFF;
CAN1IDAR4 = 0xFF;
CAN1IDAR5 = 0xFF;
CAN1IDAR6 = 0xFF;
CAN1IDAR7 = 0xFF;
//标识符过滤设置
CAN1IDMR0 = 0xff;
CAN1IDMR1 = 0xff;
CAN1IDMR2 = 0xff;
CAN1IDMR3 = 0xff;
CAN1IDMR4 = 0xff;
CAN1IDMR5 = 0xff;
CAN1IDMR6 = 0xff;
CAN1IDMR7 = 0xff;
//总线定时设置
CAN1BTR0 = 0x83;
CAN1BTR1 = 0xD8; //250kbps
//CAN控制1, 模式设置, CAN模块使能
CAN1CTL1 = 0x80; //CAN1 普通模式
//清INITRQ, 进入普通模式
CAN1CTL0 &= 0xfe;
while (CAN1CTL1 & 0x01);//******注意,是否需要修改
//接收中断使能
CAN1RIER = 0x0f;
//发送缓冲区清空
CAN1TFLG = 0x07;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -