• 大小: 2.83M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-04-14
  • 语言: C/C++
  • 标签: can  代码  

资源简介

用STM32F103单片机做的汽车OBD诊断仪,可以读取整车CAN线上,汽车发动机转速,车速等信息,对CAN通信学习有一定帮助,本代码支持所有标准CAN车型。

资源截图

代码片段和文件信息

#include “can.h“
#include “bsp.h“


/*
*********************************************************************************************************
*                                          Init_CAN()
*
* 功能   : 初始化CAN。
*
* 参数   : speed :要初始化的波特率。
*
* 返回值 : 无
*
* 注释   : 无
*********************************************************************************************************
*/
void Init_CAN(u8 speed)
{
    CAN_InitTypeDef  CAN_InitStructure;
   GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_PinRemapConfig(GPIO_Remap1_CAN1ENABLE);
   /* Configure CAN pin: RX */ //设置CAN   
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;          // PB8 - RX
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   GPIO_Init(GPIOB &GPIO_InitStructure);

   /* Configure CAN pin: TX */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;          // PB9 - TX
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(GPIOB &GPIO_InitStructure);
    /* CAN register init */
    CAN_DeInit(CAN1);
    CAN_StructInit(&CAN_InitStructure);
    
    /* CAN cell init */
    CAN_InitStructure.CAN_TTCM=DISABLE;
    CAN_InitStructure.CAN_ABOM=DISABLE;
    CAN_InitStructure.CAN_AWUM=DISABLE;
    CAN_InitStructure.CAN_NART=DISABLE;
    CAN_InitStructure.CAN_RFLM=DISABLE;
    CAN_InitStructure.CAN_TXFP=DISABLE;
    CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;
    CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
    CAN_InitStructure.CAN_BS1=CAN_BS1_11tq;
    CAN_InitStructure.CAN_BS2=CAN_BS2_6tq;
    CAN_InitStructure.CAN_Prescaler=speed;
    CAN_Init(CAN1 &CAN_InitStructure);
    CAN_ITConfig(CAN1 CAN_IT_FMP0 ENABLE);
}

/*
*********************************************************************************************************
*                                          CAN1_Config16BitFilter()
*
* 功能   : 设置CAN滤波器,过两个16位标准帧ID
*
* 参数   : id1 :要过的一个16位标准帧ID
*
*           id2 :要过的另一个16位标准帧ID
*
* 返回值 : 无
*
* 注释   : 无
*********************************************************************************************************
*/
void CAN1_Config16BitFilter(u16 id1 u16 id2)
{
    CAN_FilterInitTypeDef  CAN_FilterInitStructure;
    
    CAN_FilterInitStructure.CAN_FilterNumber=1;          //指定初始化的过滤器1~13
    CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//标示符屏蔽位模式 可以过滤一组标示符
    CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_16bit;//2个16位过滤器
    CAN_FilterInitStructure.CAN_FilterIdHigh=id1;   //0x0000~0xffff  FC00>>7E0 
    CAN_FilterInitStructure.CAN_FilterIdLow=id2;    //0x0000~0xffff
    CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;
    CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xffff;
    CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;
    CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
 
    CAN_FilterInit(&CAN_FilterInitStructure);
}

/*
***********************************************************************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2010-05-06 22:01  OBD_CAN读取代码\
     目录           0  2020-12-01 10:44  OBD_CAN读取代码\app\
     文件        6675  2020-12-01 10:44  OBD_CAN读取代码\app\can.c
     文件         378  2014-04-15 23:33  OBD_CAN读取代码\app\can.h
     文件        1489  2013-08-06 00:30  OBD_CAN读取代码\app\dma.c
     文件         277  2013-08-06 00:02  OBD_CAN读取代码\app\dma.h
     文件        1530  2014-03-31 22:28  OBD_CAN读取代码\app\send.c
     文件         183  2014-03-31 21:36  OBD_CAN读取代码\app\send.h
     文件        2470  2014-04-27 14:03  OBD_CAN读取代码\app\timer.c
     文件         153  2014-04-12 00:16  OBD_CAN读取代码\app\timer.h
     文件        5489  2020-12-01 10:41  OBD_CAN读取代码\app\usart.c
     文件         184  2013-08-04 12:48  OBD_CAN读取代码\app\usart.h
     目录           0  2020-12-01 10:44  OBD_CAN读取代码\BSP\
     文件       13198  2020-12-01 10:44  OBD_CAN读取代码\BSP\bsp.c
     文件        4415  2014-12-11 00:28  OBD_CAN读取代码\BSP\bsp.h
     文件         399  2011-04-23 10:24  OBD_CAN读取代码\keilkilll.bat
     目录           0  2010-05-06 22:00  OBD_CAN读取代码\Libraries\
     目录           0  2010-05-06 22:00  OBD_CAN读取代码\Libraries\CMSIS\
     文件       17273  2010-06-07 10:25  OBD_CAN读取代码\Libraries\CMSIS\core_cm3.c
     文件       85714  2011-02-09 14:59  OBD_CAN读取代码\Libraries\CMSIS\core_cm3.h
     目录           0  2010-05-06 22:00  OBD_CAN读取代码\Libraries\CMSIS\startup\
     文件       15766  2011-03-10 10:52  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_cl.s
     文件       15503  2011-03-10 10:52  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_hd.s
     文件       15692  2011-03-10 10:52  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_hd_vl.s
     文件       12376  2011-03-10 10:52  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_ld.s
     文件       13656  2011-03-10 10:52  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_ld_vl.s
     文件       12765  2011-03-10 10:52  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_md.s
     文件       14073  2011-03-10 10:51  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_md_vl.s
     文件       15955  2011-03-10 10:51  OBD_CAN读取代码\Libraries\CMSIS\startup\startup_stm32f10x_xl.s
     文件      633941  2011-03-10 10:51  OBD_CAN读取代码\Libraries\CMSIS\stm32f10x.h
     文件       36557  2013-08-03 18:18  OBD_CAN读取代码\Libraries\CMSIS\system_stm32f10x.c
............此处省略132个文件信息

评论

共有 条评论