资源简介
用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个文件信息
- 上一篇:C语言程序设计50例.docx
- 下一篇:LVGL 英文参考手册
相关资源
-
STM32-ba
se64加密源代码 - 谭浩强第五版课件及代码
- 俄罗斯方块(c++控制台代码)
- C++贪吃蛇控制台小游戏代码
- 五子棋c++控制台代码
- 吃豆人.cpp 代码
- canape教程(ape.docx)
- 51超声波避障源代码
- stm32f103 can驱动
- 无人机飞控+ps2遥控代码
- QT 计算文件夹内所有代码行数
- 推箱子 c语言代码
- C++学习指南语法篇代码+pdf(pdf可直接
- 一个C++实现的源代码行数统计工具
- easySize使用方法和代码
- ZZULIOJ部分答案C语言免费.7z
- TOA/AOA定位算法C语言代码
- 高效FFT的C/C++代码实现包括基2的DIF和
- 吉他调音软件源代码
- 连连看源代码C语言版
- AVR单片机SPI通讯程序 (C语言源代码)
- Visual+C++数字图像处理-谢凤英-源代码
- 纯C++实现的截屏
- C语言解析教程第四版pdf及随书代码
- [纯C语言 + Win32 API]一步一步写个围棋
- FFT算法c语言代码
- 电子宠物C++完整代码可直接运行
- AAM算法实现
- 算法竞赛入门经典 第二版刘汝佳著含
- 多功能计算器实现C++代码以及代码详
评论
共有 条评论