查看: 4215|回复: 1

[其他] can模块的问题

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
发表于 2009-6-23 00:41:08 | 显示全部楼层 |阅读模式
            我的can模块在loopb模式下能实现,正常模式的时候端口却没数据出来,端口的初始化:
            void MC9S12_Port_Init(void)
            {
            DDRP_DDRP4 = 1;
            DDRP_DDRP5 = 1;
            // 连键盘
            DDRP_DDRP0 = 0;//1B1--PB1
            DDRP_DDRP1 = 0;//1B2--PB2
            DDRA_BIT5 = 0;//1B3 --PB3
            DDRA_BIT4 = 0;//1B4 --PB4
            // 连LED
            DDRA |= 0x0f;//
            DDRB = 0xff;
            
            DDRT = 0xff;
            
            PTT = 0xff;
            PORTB =0xff;
            // 连CBT3244
            PTP = 0xff; //OE1,OE2
            PORTA = 0xf0;
            // 0E1.0E2
            PTP_PTP4 = 0;
            PTP_PTP5 = 0;
            // CAN
            DDRM_DDRM0 = 0;//RxCAN0
            DDRM_DDRM1 = 1;//TxCAN0
            // LCD
            DDRM_DDRM2 = 0;//MISO0
            DDRM_DDRM3 = 1;//SS0
            DDRM_DDRM4 = 1;//MOSI0
            DDRM_DDRM5 = 1;//SCK0
            
            //DDRM = 0xff;
            PTM = 0xff;
            WOMM=0x00; //管脚复用模式选择
            MODRR=0x00;//CAN0端口选择 PM0,PM1
            PERM=0x00;
            }
             
             
             
             
             
            can模块的初始化:
             void MSCAN_init()
             
              {
              CAN0CTL0_INITRQ=1;      //进入初始化模式//
              CAN4CTL0_INITRQ=1;
              while((CAN0CTL1_INITAK==0)&&(CAN4CTL1_INITAK==0));  //等待应答信号
              CAN0IDAC=0x20;    //验收控制寄存器//
              CAN4IDAC=0x20;
              CAN0IDMR0=0xFF;    //设置屏蔽寄存器,忽略屏蔽//
              CAN4IDMR0=0xFF;
              CAN0IDMR1=0xFF;
              CAN4IDMR1=0xFF;
              CAN0IDMR2=0xFF;
              CAN4IDMR2=0xFF;
              CAN0IDMR3=0xFF;
              CAN4IDMR3=0xFF;
              CAN0IDMR4=0xFF;
              CAN4IDMR4=0xFF;
              CAN0IDMR5=0xFF;
              CAN4IDMR5=0xFF;
              CAN0IDMR6=0xFF;
              CAN4IDMR6=0xFF;
              CAN0IDMR7=0xFF;
              CAN4IDMR7=0xFF;
              CAN0BTR0=0x40;
              CAN4BTR0=0x40;
              CAN0BTR1=0x3F;
              CAN4BTR1=0x3F;
              CAN0CTL1=0x80;
              CAN4CTL1=0x80;
              CAN0CTL0_INITRQ=0;
              CAN4CTL0_INITRQ=0;
              while((CAN0CTL1_INITAK==1)&&(CAN4CTL1_INITAK==1));  //等待应答信号//
              CAN0RIER_RXFIE=1;                      //允许CAN0的接收中断//
              //CAN0RIER=0xff;
              }
             
             
             
            发送数据程序:
               void CAN_Transmit(void)
            {
             mask = CAN0TFLG;    
              CAN0TBSEL= mask;//0x01;       
              mask = CAN0TBSEL;       
              /*CAN0TXIDR0  = 0x00;   
              CAN0TXIDR1  = 0x08;  //扩展桢
              CAN0TXIDR2  = 0x00;
              CAN0TXIDR3  = 0x04; //发送ID=2  */
                CAN0TXDSR0=0x01;   //发送数据//
                uart_putchar(CAN0TXDSR0);
                CAN0TXDSR1=0x02;
                uart_putchar(CAN0TXDSR1);
                CAN0TXDSR2=0x03;
                uart_putchar(CAN0TXDSR2);
                CAN0TXDSR3=0x04;
                uart_putchar(CAN0TXDSR3);
                CAN0TXDSR4=0x05;
                uart_putchar(CAN0TXDSR4);
                CAN0TXDSR5=0x06;
                uart_putchar(CAN0TXDSR5);
                CAN0TXDSR6=0x07;
                uart_putchar(CAN0TXDSR6);
                CAN0TXDSR7=0x08;
                uart_putchar(CAN0TXDSR7);
              CAN0TXDLR  = 0x08;      
              CAN0TXTBPR  = 0x00;      
              CAN0TFLG = mask;// 0x00;
              uart_putchar(mask);
              //return mask;        
            } 
            
            
            请高手指点下 !!!!
            
关闭
我知道答案 目前已有0人回答
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
23
最后登录
1970-1-1
发表于 2009-6-26 21:01:26 | 显示全部楼层

RE:can模块的问题

可能是你的Prescaler没有设置正确,因为在loopback模式下对baudrate没有特别的要求。看一下你的BTR0设置吧。因为不知道你的Osc频率是多少,没有办法帮你算了哦
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-22 06:03 , Processed in 0.095259 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表