No.73137 作者:canglang008 邮件:canglang008@163.com ID:30750 登陆:4次 文章数:1篇 最后登陆IP:221.221.157.44 最后登陆:2005/11/22 15:06:42 注册:2005/2/4 9:46:18 财富:108 发帖时间:2005/2/18 9:24:41 发贴者IP:61.51.60.101 标题:canglang008:求助一个P87c591中CAN网初始化的问题? 摘要:No.73137求助一个P87c591中CAN网初始化的问题? 我现在遇到一个问题:在调试Phillips的P87c591的can网时,发现进入不了can中断, 具体调试程序如下,希望大侠们帮我看看问题出在哪?谢谢. 串口和定时器都调通了,灯也调通了.我得调试思路是,在主程序中每隔10秒向can网发数据,同时产生can中断,在can中断中发数据,在can中断中点一个灯,结果发现在can中断中点的灯怎么也不亮,不知道问题出在哪,希望帮我看看下边的程序. main() { init_can_controller(); ...... ECAN=1; while() { /*每隔10秒向CAN网发数据*/ CANCON = 0x01; /*发送中断*/ } } CAN网初始化函数 void init_can_controller(void) { /* 进入CAN控制器复位模式 */ CANMOD = 0x01; /* 将CAN控制器设置为复位模式以启动初始化 */ /* TXDC Port (P1.1) 配置 */ /* 管脚TXDC 设置为推挽模式 */ P1M2 = P1M2 | 0x02; /* P1M2.1=’1’, P1M1.1 = ’0’ (默认) */ /* 配置与CAN有关的中断 */ CANSTA = 0x03; /* 使能接收和发送中断 */ /* CAN位定时的配置 */ CANADR = 0x06; /* BTR0和BTR1编程为125 kbit/s @12 MHz */ CANDAT = 0x45; CANADR = 0x07; /* TSEG1 = 12, TSEG2 = 3, SJW = 2 */ CANDAT = 0x2B; /* Samples = 1 -> sample point ~81 % */ /* 选择操作模式退出CAN控制器复位模式 */ CANMOD = 0x00; while (CANSTA & 0x80); /*等待总线激活*/ } CAN网中断函数 void ECAN_int_service(void) interrupt ......
>>返回讨论的主题
|