Browsing this Thread:
1 Anonymous Users
|
Re: 30F4011can 通信问题
|
|
新會員
Joined
: 2008/11/27 16:09 最後登入時間
: 2010/7/28 21:51
Group:
註冊會員
Level : 1 HP : 0 / 8 MP : 1 / 395 EXP : 34
|
把中断C1INTEbits.RX0IE=1; 关掉就行
發表於: 2009/2/17 20:21
|
|
|
30F4011can 通信问题
|
|
新會員
Joined
: 2007/8/2 9:47 最後登入時間
: 2008/4/21 10:10
Group:
註冊會員
Level : 1 HP : 0 / 8 MP : 1 / 428 EXP : 34
|
我使用30F4011进行CAN的通讯实验,在正常的通讯模式,用发送缓冲器0发送数据,装入数据后,C1TX0CONbits.TXREQ = 1; 启动发送, while (C1TX0CONbits.TXREQ==1) { } 等待发送完成会死机,如果工作在自检模式不会死机,不知道是何原因?
void Can_initial() { TRISFbits.TRISF0=1; TRISFbits.TRISF1=0; C1CTRLbits.REQOP = 0x4; //请求进入配置模式 while (C1CTRLbits.OPMODE!=0x4){} //确认进入配置模式 C1TX0CON = 0x0003; //发送0邮箱配置,高优先级 C1TX0SID = 0x0020; //发送0标准标识符,11位 C1TX0DLC = 0x01c0; //发送0数据长度,8字节 C1RX0CON = 0x0000; //接收0邮箱配置 C1RX0DLC = 0x0008; //接收0数据长度,8字节 C1RXF0SID = 0x0030; //接收滤波器0标准标识符,11位 C1RXM0SID = 0x0; //接收屏蔽0标准标识符 C1CFG1 = 0x0081; //波特率配置 C1CFG2 = 0x031b; C1INTEbits.RX0IE=1; //RX0接受中断 C1CTRLbits.REQOP = 0x00; //请求进入正常试模式 while (C1CTRLbits.OPMODE!=0x00); //确认进入正常试模式 return; }
void Test_Can(void) { C1TX0B1 = 0x5555; //发送缓冲寄存器8字节 C1TX0B2 = 0x5555; C1TX0B3 = 0x5555; C1TX0B4 = 0x5501; C1TX0CONbits.TXREQ = 1; //启动发送 while (C1TX0CONbits.TXREQ==1){ } //等待发送完成 死机
}
發表於: 2008/4/21 10:11
|
|
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.