搜索
bottom↓
回复: 12

哪位大侠知道怎样弄到pic18系列带can总线的单片机

[复制链接]

出0入0汤圆

发表于 2013-1-23 11:37:37 | 显示全部楼层 |阅读模式
哪位大侠知道怎样弄到pic18系列带can总线的单片机,最经想学学pic的can总线

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-1-23 22:42:15 | 显示全部楼层
PIC18   K80系列的都是带CAN总线的产品

出0入0汤圆

 楼主| 发表于 2013-1-23 23:31:52 | 显示全部楼层
difashi 发表于 2013-1-23 22:42
PIC18   K80系列的都是带CAN总线的产品

嗯对就是这个系列想弄个能申请吗

出0入0汤圆

发表于 2013-1-23 23:46:37 | 显示全部楼层
本帖最后由 风色幻想 于 2013-1-23 23:51 编辑

我搞过基于PIC18F248_258_448_458 系列的CAN总线驱动 电路 代码完全开源
//------------------------------------------
// *************************************************************
//** 函 数 名: initcan()
//** 功能描述: CAN初始化子程序,采用标准标识符,模式
.//作者 刘远东 QQ 46439147
//*************************************************************** */
void initcan()
{
    /* ************设置对CAN进行配置***************  */
    TRISB=0X09;    //(TRISB|0X08)&0XFB;   
    CANCON=0X80;                    
    while(CANSTAT&0X80==0){ ; }      
                              /* 是否进入CAN配置模式OPMODE=100 */                                                        
    /*  ***********波特率设置 ************************** */
   BRGCON1=0X01;                    //* Sync_Seg(bit7-6)=1TQ,BRP(bit5-0)=1,
                                     //则TQ=((2*(BRP+1))/Fosc=4/4M=1us */
    BRGCON2=0X90;                    //*bit7=1自由编程,bit6=0总线在采样点采样1
                                   //   次;Phase_Seg1(bit5-3)=3TQ;Prog_Seg(bit2-0)=1TQ*/
    BRGCON3=0X42;                /* 设置Phase_Seg2(bit2-0)=3TQ */
                                /* 标称位时间=TQ*(Sync_Seg+ Prop_Seg+ Phase_seg1+ Phase_seg2)
                                       =(1+1+3+3)TQ=8TQ,    位率=1/(8*1U)=0.125MHz */
    /*  ******设置发送邮标识符号和初始发送的数据*****  */
   TXB0CON=0X03; //其他用02,01,00低优先级。/* bit1-0:发送优先级,设置TXB0为最高优先级03 */
    TXB0SIDL=0x00;// 其他板0x00,0x00                  /* bit3=0标准标识符,bit7-5:标准标识符2-0位 */
    TXB0SIDH=0x33;// 其他板0x55,0x99                    /* 标准标识符的10-3位 */
    TXB0DLC=0X04;                    /* 设置数据长度为4个(8个)字节 */
    TXB0D0=0X11;                    /* 写发送缓冲器数据区数据初值 */
    TXB0D1=0X01;                    /* 写发送缓冲器数据区数据初值 */
    TXB0D2=0X00;
    TXB0D3=0X00;
   
    /* *******设置接收邮箱0的标识符和初始化数据********** */
    RXB0SIDL=0x00;// 其他板0x00,0x00     /* bit3=0标准标识符,bit7-5:标准标识符2-0位*/
    RXB0SIDH=0x55;//其他0x33,0x99             /* 标准标识符的10-3位 */
    RXB0CON=0X20;                    /* bit6-5=01只接收有效的标准标识符信息 */
    RXB0DLC=0X04;                    /* 设置接收缓冲器0的数据区长度4个字节 */
    RXB0D0=0X05;                    /* 初始化接收缓冲器0的数据区数据 */
    RXB0D1=0X55;                    /* 初始化接收缓冲器0的数据区数据 */
    RXB0D2=0X11;
    RXB0D3=0X01;
   
    /* *******初始化接收滤波器0和接收屏蔽**************** */
    RXF0SIDH=0x55;//其他0x33,0x99         
    RXF0SIDL=0x00;//其他0x00,0x00         
    RXM0SIDH=0Xff;
    RXM0SIDL=0Xe0;                //* 11个1表示接收11位标识符进行滤波,标识符
                                // 不同不接收;若全为0,若正确信息,全部接收*/
    /* *******设置CAN工作模式**************************** */
    CANCON=0X00;                /* =0,正常操作模式 */
    while((CANSTAT&0X40)!=0) {;}        /* 检测CAN配置完成 */
         
    /* 初始化CAN的中断,PIR3为CAN的外围中断标志寄存器 */
      PIR3=0X00;                    /* 清所有CAN中断标志 */
     PIE3=PIE3|0X01;                /* 使能接收缓冲器0的接收中断 */
    IPR3=IPR3|0X00;                /* 接收缓冲器0的接收中断为低优先级 */
  }
//-----------------------------------------------------
//* ****************************************************************
//** 函 数 名: interrupt low_priority LOW_ISR()瓦斯计时安排高级优先级
//** 功能描述: CAN低优先级中断子程序:RXB0接收邮箱0接收中断子程序
//***************************************************************** */
void interrupt  low_priority LOW_ISR()
{
  if(RXB0IF==1)                //* RXB0接收邮箱0接收中断 */
  {   
         RXB0IF=0;                //* 清接收中断标志 */
         RXB0FUL=0;                 //* bit7=0打开接收缓冲器接收新信息 */
         TXB0CON=TXB0CON&0xf7;    /* TXB0REQ=0,禁止发送请求*/
         teml2=RXB0D0;
         temh2=RXB0D1;
         teml3=RXB0D2;
         temh3=RXB0D3;
         TXB0D0=nn;
         TXB0D1=nn>>8;//nn--给定下传
         TXB0D2=teml;
         TXB0D3=temh;//测量值下传
         TXB0CON=TXB0CON|0x08;   /* bit3(TXREQ)=1,请求发送 */
   }      
}

//*******主程序********************************************

出0入0汤圆

发表于 2013-1-24 09:44:17 | 显示全部楼层
可以看看PIC18F25K80的

出0入0汤圆

 楼主| 发表于 2013-1-24 17:57:53 | 显示全部楼层
1521732588 发表于 2013-1-24 09:44
可以看看PIC18F25K80的

是现在缺单片机不知去哪里弄到,就要一片两片的

出0入0汤圆

 楼主| 发表于 2013-1-24 17:58:41 | 显示全部楼层
风色幻想 发表于 2013-1-23 23:46
我搞过基于PIC18F248_258_448_458 系列的CAN总线驱动 电路 代码完全开源
//------------------------------ ...

谢谢帮忙有不懂的像你请教现在缺单片机不知道去哪里弄到就要1片两片的

出0入0汤圆

发表于 2013-1-25 10:58:46 | 显示全部楼层
我来看一下我有没有
有的话给你

出0入0汤圆

发表于 2013-1-25 11:23:36 | 显示全部楼层
中发散买pic18f4580 50一片

出0入0汤圆

发表于 2013-1-25 11:31:42 | 显示全部楼层
我有,但是要怎么给你

出0入0汤圆

 楼主| 发表于 2013-1-25 11:43:36 | 显示全部楼层
1521732588 发表于 2013-1-25 11:31
我有,但是要怎么给你

你好有qq吗,

出0入0汤圆

发表于 2013-1-25 13:57:37 | 显示全部楼层
251566208,1521732588

出0入0汤圆

发表于 2013-1-27 08:49:17 | 显示全部楼层
楼上人不错,支持一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-17 11:53

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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