速锐得兼容 OBD elm327-iEST327-est327主控芯片电路原理图
- 格式:pdf
- 大小:41.54 KB
- 文档页数:1
【图】【纯技术贴】ELM327蓝牙obd检测器试用报告(已上图)【纯技术贴】ELM327蓝牙obd检测器试用报告(已上图)ELM327蓝牙obd检测器试用报告很早就想买一个行车显示器,方便查看油耗和检测车辆状态。
原来希望买一款简单实用的,经过反复对比和漫长的等待、观望进而实在无法接受现有行车显示器的粗劣和高价(虽然我自己做不出来,但是技术性和美观实用性实在不敢恭维、不愿苟同)。
好在几年来有无数高手前辈的摸索探寻,俺搜来搜去看了不少好贴,最终受到启发另辟蹊径决定购买一款便宜适用的obd检测器,经过煞费苦心的寻觅,终于发现了一款ELM327汽车诊断检测线(诊断仪),原理同行云流水和MFD也是利用了国三排放车辆上配置的ECU诊断接口(OBDⅡ),通过发送标准的obd指令从ECU获取相关数据。
首先按价格和信誉选择了一家上海的商家,价格比我们能够查到的作业都低,加上运费也就¥160。
这个以后羊友去买可以按团购价usb的120,蓝牙的130,运费一线城市应该不超过20。
商家发货速度很快,当天发货第二天上午就到了,可是不凑巧,我一整天都没闲着,中午抽空去取了,下午一直忙到晚上十点(济南这边连降大雨,郊区堵车严重)。
硬生生给吊足了胃口,真是好事多磨啊。
幸亏事先查了些资料准备了不少软件,打开商家发来的包装,只有一张小光盘和一个蓝牙obd,连个说明书也没有,唉只要东西好用,缺少点东西降低点成本也是可以接受的。
晚上回来得晚,只能抽空把小光盘里20多兆的软件挨个看了一下,很不理想。
连pcmscan这样的大部头都没有。
鄙视一下。
早上起来,收拾了一下,带上了笔记本和多普达696,准备用pcmscan和OBD Gauge分别在笔记本电脑和PPC手机上测试一下。
需要说明的是之前光在4S看技师接插过原厂诊断仪,自己还一直没找到那个梯形16针的传说中的OBDⅡ插口。
先处理了一下车门漏水,把上次贴在车门下方格挡迎宾条的长条密封胶条裁成几块,中间留足出水口,希望能够解决。
模拟芯片(Analog ICs )放大器(Amplifiers)比较器(Comparators)显示驱动器(Display Drivers)过滤器(Filters)数据选择器(Multiplexers)稳压器(Regulators)定时器(Timers)基准电压(Voltage Referenee) 杂类(Miseellananeous)电容(Capaeitors)可动态显示充放电电容(An imated)音响专用轴线电容(Audio Grade Axial)轴线聚苯烯电容(Axial Lead Polyprope ne)轴线聚苯烯电容(Axial Lead Polystyre ne)陶瓷圆片电容(Ceramic Disc)去耦片状电容(Deeoupling Disc)普通电容(Generic)高温径线电容(High Temp Radial)高温径线电解电容(High Temperature Axial Electrolytic)金属化聚酯膜电容(Metallised Polyester Film) 金属化聚烯电容(Metallised Polypropene)金属化聚烯膜电容( Metallised Polyprope ne Film)小型电解电容(Miniture Electrolytic)多层金属化聚酯膜电容( Multilayer Metallised Polyestern Film) 聚脂膜电容(Mylar Film)镍栅电容(Nickel Barrier)无极性电容(Non Polarised)聚脂层电容(Polyester Layer)径线电解电容(Radial Electrolytic)树脂蚀刻电容(Resin Dipped)钽珠电容(Tantalum Bead)可变电容(Variable)VX 轴线电解电容(VX Axial Electolytic)连接器(Connectors)音频接口( Audio)D 型接口( D-Type)双排插座(DIL)插头(Header Blocks)PCB 转接器(PCB Transfer)带线(Ribbon Cable)单排插座(SIL)连线端子(Terminal Blocks)杂类(Miscellananeous) 数据转换器(Data Converter) 模/数转换器(A/D converters) 数/模转换器(D/A converters) 采样保持器(Sample & Hold) 温度传感器(Temperature Sen sore) 调试工具(Debugging Tools) 断点触发器(Breakpoint Triggers) 逻辑探针(Logic Probes) 逻辑激励源(Logic Stimuli) 二极管(Diode) 整流桥(Bridge Rectifiers) 普通二极管(Generic) 整流管(Rectifiers) 肖特基二极管(Schottky) 开关管(Switching) 隧道二极管(Tunnel) 变容二极管(Varicap) 齐纳击穿二极管(Zener)ECL 10000 系列(ECL 10000 Series) 各种常用集成电路机电(Electromechanical)各种直流和步进电机电感(Inductors) 普通电感(Generic) 贴片式电感(SMT In ductors) 变压器(Transformers) 拉普拉斯变换(Laplace Primitives) 一阶模型(1st Order) 二阶模型(2st Order) 控制器(Controllers) 非线性模式(Non-Linear) 算子(Operators) 极点/零点(Poles/Zones) 符号(Symbols) 存储芯片(Memory Ics) 动态数据存储器(Dynamic RAM) 电可擦除可编程存储器(EEPROM) 可擦除可编程存储器(EPROM) I2C 总线存储器(I2C Memories) SPI 总线存储器(SPI Memories) 存储卡(Memory Cards) 静态数据存储器(Static Memories) 微处理器芯片(Microprocess ICs)6800 系列(6800 Family)8051 系列(8051 Family)ARM 系列(ARM Family)AVR 系列(AVR Family)Parallax 公司微处理器(BASIC Stamp Modules)HCF11 系列(HCF11 Family)PIC10 系列(PIC10 Family )PIC12 系列(PIC12 Family)PIC16 系列(PIC16 Family)PIC18 系列(PIC18 Family)Z80 系列(Z80 Family)CPU 外设(Peripherals)杂项(Miscellaneous)含天线、ATA/IDE硬盘驱动模型、单节与多节电池、串行物理接口模型、晶振、动态与通用保险、模拟电压与流符号、交通信号灯建模源(Modelling Primitives)模拟(仿真分析)(Analogy-SPICE)数字(缓冲器与门电路)(Digital-Buffers&Gates)数字(杂类)(Digital--Miscellaneous)数字(组合电路)(Digital--Combinational)数字(时序电路)(Digital--Sequential)混合模式(Mixed Mode)可编程逻辑器件单元(PLD Eleme nts)实时激励源(Realtime Actuators)实时指示器(Realtime Indictors)运算放大器(Operational Amplifiers)单路运放(Single)二路运放(Dual)三路运放(Triple)四路运放(Quad)八路运放(Octal)理想运放(Ideal)大量使用的运放(Macromodel)光电子类器件(Optoelectronics)七段数码管(7-Segment Displays)英文字符与数字符号液晶显示器(Alpha nu meric LCDs) 条形显示器(Bargraph Displays)点阵显示屏(Dot Matrix Display)图形液晶(Grphical LCDs)灯泡(Lamp)液晶控制器(LCD Controllers)液晶面板显示(LCD Pan els Displays)发光二极管(LEDs)光耦元件(Optocouplers)串行液晶(Serial LCDs)可编程逻辑电路与现场可编程门阵列(PLD&FPGA)无子类电阻(Resistors)0.6W 金属膜电阻(0.6W Metal Film)10W 绕线电阻(10W Wirewound)2W 金属膜电阻(2W Metal Film)3W 金属膜电阻(3W Metal Film)7W 金属膜电阻(7W Metal Film)通用电阻符号(Generic)高压电阻(High Voltage)负温度系数热敏电阻(NTC)排阻(Resisters Packs)滑动变阻器(Variable)可变电阻(Varistors)仿真源(Simulator Primitives)触发器(Flip-Flop)门电路(Gates)电源(Sources)扬声器与音响设备(Speaker&Sou nders)无子分类开关与继电器(Switch&Relays)键盘(Keypads)普通继电器(Generic Relays)专用继电器(Specific Relays)按键与拨码(Switchs)开关器件(Switching Devices)双端交流开关元件(DIACs)普通开关元件(Generic)可控硅(SCRs)三端可控硅(TRIACs)热阴极电子管(Thermionic Valves)二极真空管(Diodes)三极真空管(Triodes)四极真空管(Tetrodes)五极真空管(Pentodes)转换器(Transducers)压力传感器(Pressures)温度传感器(Temperature)晶体管(Transistors)双极性晶体管(Bipolar)普通晶体管(Generic)绝缘栅场效应管(IGBY/Insulated Gate Bipolar Transistors 结型场效应晶体管(JFET)金属-氧化物半导体场效应晶体管(MOSFET)射频功率LDMOS晶体管(RF Power LDMOS) 射频功率VDMOS晶体管(RF Power VDMOS) 单结晶体管(Unijunction)CMOS 4000 系列(CMOS 4000 seriesTTL 74 系列(TTL 74 series)TTL 74增强型低功耗肖特基系列(TTL 74ALS Series)TTL 74增强型肖特基系列(TTL 74AS Series)TTL 74 高速系列(TTL 74F Series)TTL 74HC 系列/CMOS 工作电平(TTL 74HC Series)TTL 74HCT 系歹U /TTL 工作电平(TTL 74HCT Series)TTL 74低功耗肖特基系列(TTL 74LS Series)TTL 74 肖特基系列(TTL 74S Series)加法器(Adders)缓冲器/驱动器(Bufers&Drivers)比较器(Comparators)计数器(Counters)解码器(Decoders)编码器(Encoders)存储器(Memory)触发器/锁存器(Flip-Flop&Latches)分频器/定时器(Frequency Dividers & Timers)门电路/反相器(Gates&lnverters)数据选择器(Multiplexers)多谐振荡器(Multivibrators)振荡器(Oscillators)锁相环(Phrase-Locked-Loop,PLL)寄存器(Registers)信号开关(Signal Switches) 收发器(Tranxceivers)杂类逻辑芯片(Misc.Logic)Proteus isis 的元件库中英对照Proteus元件名称对照1元件名称屮文名说明7407 驱动门1N914 二极管74Ls00 与非门74LS04 非门74LS08 与门74LS390 TTL 双十进制计数器7SEG 4 针BCD-LED俞出从0-9对应于4根线的BCD码7SEG 3-8 译码器电路BCD-7SEG[size=+0]转换电路ALTERNATOR 交流发电机AMMETER-MILLI m安培计AND 与门BATTERY 电池/电池组BUS 总线CAP 电容CAPACITOR 电容器CLOCK 时钟信号源CRYSTAL 晶振D-FLIPFLOP D 触发器FUSE 保险丝GROUND 地LAMP 灯LED-RED 红色发光二极管LM016L 2 行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7, RS R/W EN三个控制端口(共14线),工作电压为5V。
ELM327蓝牙诊断仪啦,安装步骤及实测报告,再加ELM327拆解前段时间天气冷早上发车要几次才成功,而且故障灯一闪一闪的,送到SSSS店也查不问题。
小三也带有行车电脑只是没有行车显示器,就寻思着买一个接上去看看车的状态,顺便看可以查油耗。
原来想买一个简单一点,后来通过对比比较,上网搜帖,功课做好。
比较来比较去最后选择了一款ELM327汽车诊断线蓝牙连接,先来说说为什么没有选择行云流水和MDF行车显示器,行云流水现在已经出到四代了,扩展功能增加了不少,显示屏也改了,但是屏太小了,我视力不太好,要盯着看,再加上本人驾驶水平不高,容易出现事故。
MDF屏大,显示的功能也全,就是贵。
这些显示器显示的内容都是固定的,再一个这些数据看一下就可以了没有必要时刻显示。
ELM327只是一个接口,所有的东西都掌控在软件里面,以后升级非常方便,而且价格便宜,这两点是最大的特点,现在智能手机和笔记本已经很普及了,并且还可以记录无限的数据。
这些东西都是从车辆上的ECU诊断接口发送和读取的数据,小三上也配有,在方向盘的右下方。
淘宝上选定了一个商家,与他交谈得知V3还没有用过,真的很想用,我就来做试验品吧,反正也不贵,加上邮费不到140。
顺丰的速度很快,第二天就收到了。
快下班收到的,连夜做实验,哈哈,真不错,小三的状态一览无余。
话不多说了,过程如下。
先来一张实验品的照片吧,我是新款V3风采版,其它的V3车型还没有来得及测试。
老婆不愿意公开,大家都说她长得象蒙奇奇,那就用蒙奇奇吧,哈哈。
主角登场收到的货就两样东西,一张光盘,里面全是英文软件和驱动,基本上没有什么用,老板那里有破解版的中文软件,很好用。
ELM327上有五个指示灯,在通讯时OBD与串口指示灯会闪烁。
ELM327的OBD II接口共16针的插口,其中4、5脚比其它的高一些,不知道是不是支持热插拔,这两个脚的作用都是地,一个逻辑地,一个是底盘地。
V3的OBD II接口从图中可以看到V3的OBD II接口位在油门的上方,空调脚部出风口的附近。
STM32驱动DAC7617这是本人第一次根据时序图写程序,完成后的确是有点成就感的。
所以记录下这次驱动的经历,聊以慰藉。
DAC7617是块四路串行输入12位电压输出的数模转换器芯片,低功耗,单电源供电,使用很方便。
从TI公司那里申请了两块,本来还申请其他型号的16位的,但是被拒绝了,只这两片成功了。
芯片到手后搜索了些资料,下载了芯片手册,对照着手册焊出了电路。
手册上说供电用3V的,参考电压才1.25V。
但是我系统板上的电源是5V或者3.3V的,而且1.25V的参考电压不容易得到。
我手头上有3.3V和2.5V 的AMS1117稳压芯片,于是我就用上这两块稳压芯片,把供电电压改成3.3V,参考电压改成2.5V。
硬件原理图如图1:图1首先看看手册,了解一下芯片,都是英文的,大概看懂了一些,主要看引脚的功能,和时序的描述,然后把引脚都注释上中文,方便查阅。
引脚功能如图2:图2接着就是看懂时序图开始写程序,时序图是这样叙述的:发送数据前,LOADREG先从低电平置为高电平,然后CS从高电平变为低电平,开始传输数据,CLK先从高电平置为低电平,然后传输一位数据,CLK置高,上升沿让这位数据进位,然后再如此传输接下来的15位数据;传送完16位数据把CS置高电平,最后LOADREG置为低电平把数据锁存到DAC寄存器。
如此便完成了一次DA传输。
时序图如图3:图3DAC16位寄存器的说明:第十五位和第十六位A1和A0为DAC通道选择通道,共4个通道,十三位和十四为无效,第零位到第十二位为DAC 值寄存器,值为0-4096;通道说明如图4:图4程序源码:/********************************************************************************* ** 文件名: mian.c** 库函数版本V3.5.0** 工作环境: RealView MDK-ARM 4.20** 修改: 韦冬成** 生成日期: 2011-07-25** 功能: DAC7617E驱动测试** 说明: 3.3V供电,2.5V参考电压,0对应0V,2048对应1.25V,4095对应最大值2.50V ** 因此计算公式应为AD_Out = (2.50/4095)*N;*********************************************************************************/ /* 包含头文件*******************************************************************/#include "stm32f10x.h"#include "stdio.h"#include "DAC7617E.h"/* 类型声明--------------——----------------------------------------------------*//* 宏定义--------------——------------------------------------------------------*//* 变量--------------——--------------------------------------------------------*//* 函数声明-----------------------------------------------------------------*//* 函数功能------------------------------------------------------------------*//********************************************************************************* 函数名称: main** 函数说明: 主函数** 输入参数: 无** 输出参数: 无** 返回参数: 无*******************************************************************************/int main(void){#ifdef DEBUGdebug();#endifSystemInit(); /* 系统初始化*/DAC7617E_Configuration();DAC7617E_Set_Value(0,2048); /* 通道A输出2048对应1.25V*/DAC7617E_Set_Value(1,2048); /* 通道B输出4095对应1.25V*/DAC7617E_Set_Value(2,4095); /* 通道C输出4095对应2.50V*/DAC7617E_Set_Value(3,0); /* 通道D输出0对应0.00V*/while(1){}//while(1)结束}#ifdef USE_FULL_ASSERT/******************************************************************************* * 函数名称: assert_failed* 函数说明: 报告在检查参数发生错误时的源文件名和错误行数* 输入参数: file: 源文件名line: 错误所在行数* 输出参数: 无* 返回参数: 无*****************************************************************************/ void assert_failed(uint8_t* file, uint32_t line){/* 用户可以增加自己的代码用于报告错误的文件名和所在行数,例如:printf("错误参数值: 文件名%s 在%d行\r\n", file, line) *//* 无限循环*/while (1){}}#endif/***********************************文件结束***********************************//******************************************************************************* **文件名: DAC7617E.c**模块功能: DAC7617E模块**修改:韦冬成**日期:2011.07.26**说明:把LDAC直接接低电平可节省一个IO口,若不需把所有通道同时** 复位则可把RESET直接接高电平,再省一个IO,如此,操作该芯** 片只需4个IO.** 本程序在3.3V供电,2.5V参考电压情况下测试,输出4095时对应最** 大电压为2.50V,中值(2048)对应1.25V.*******************************************************************************/ #include "DAC7617E.h"/******************************************************************************* * Function Name : DAC7617E_Configuration* Description : Configures DAC7617E* Input : None* Output : None* Return : None*******************************************************************************/ void DAC7617E_Configuration(void){GPIO_InitTypeDef GPIO_InitStructure;/*Enble GPIOD*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); //使能由APB2时钟控制的外设中的PA/*配置DAC7617E对应位IO口*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11;//IO 端口的第8,9,10,11位GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //翻转速度为50MGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //端口模式为推拉输出方式GPIO_Init(GPIOD, &GPIO_InitStructure); //用以上几个参数初始化PA口/*设置IO为低电平*/DAC_LOADREG_SET(0);DAC_CS_SET(0);DAC_CLK_SET(0);DAC_SDI_SET(0);}void DAC7617E_Set_Value(u16 DA_chanel,u16 DA_V alue)//DA_chanel为DAC通道选择,0~3对应通道A~B,DA_Value为DAC输出值0~4096;{u8 i=0;u16 Setdata = 0;DAC_LOADREG_SET(1);DAC_CLK_SET(1);DAC_CS_SET(1);Setdata = ((DA_chanel<<14)&0xC000)+(DA_Value&0x0FFF);for(i=0;i<16;i++){DAC_CS_SET(0);DAC_CLK_SET(0);if(Setdata&0x8000){DAC_SDI_SET(1);}else{DAC_SDI_SET(0);}DAC_CLK_SET(1);Setdata<<=1;}DAC_CS_SET(1);DAC_LOADREG_SET(0);DAC_LOADREG_SET(1);}#ifndef __DAC7617E_H__#define __DAC7617E_H__/********************************************************************************文件名: DAC7617E.h**内容简述:头文件**修改:韦冬成**日期:2011.07.26*******************************************************************************/ #include "stm32f10x.h"/* 宏定义--------------------------------------------------------------------*///DAC7617E#define DAC_SDI (1<<8) // PD8#define DAC_CLK (1<<9) // PD9#define DAC_CS (1<<10) // PD10#define DAC_LOADREG (1<<11) // PD11#define DAC_LOADREG_SET(x) GPIOD->ODR=(GPIOD->ODR&~DAC_LOADREG)|(x ? DAC_LOADREG:0)#define DAC_CS_SET(x) GPIOD->ODR=(GPIOD->ODR&~DAC_CS)|(x ? DAC_CS:0)#define DAC_CLK_SET(x) GPIOD->ODR=(GPIOD->ODR&~DAC_CLK)|(x ? DAC_CLK:0) #define DAC_SDI_SET(x) GPIOD->ODR=(GPIOD->ODR&~DAC_SDI)|(x ? DAC_SDI:0)/* 函数声明-----------------------------------------------------------------*/void DAC7617E_Configuration(void);void DAC7617E_Set_Value(u16 DA_chanel,u16 DA_Value);//DA_chanel为DAC通道选择,0~3对应通道A~B,DA_Value为DAC输出值0~4096;#endif /*#ifndef __DAC7617E_H__*/。
dac0832中文资料引脚图电路原理作者:来源:本站原创点击数:4513 更新时间:2008年01月16日DAC0832是采样频率为八位的D/A转换器件,下面介绍一下该器件的中文资料以及电路原理方面的知识。
DAC0832内部结构资料:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。
运放的反馈电阻可通过RFB端引用片内固有电阻,海可以外接。
该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图DAC0832引脚图和内部结构电路图DAC0832程序#pragma db oe sb#i nclude#i nclude#define DAC0832 XBYTE[0x7fff] /* 定义端口地址*/#define uchar unsigned charvoid delay(uchar t) { /* 延时函数*/while(t--);}void saw(void) { /* 锯齿波发生函数*/uchar i;for (i=0;i<255;i++) {DAC0832=i;}}void square(void) { /* 方波发生函数*/ DAC0832=0x00;delay(0x10);DAC0832=0xff;delay(0x10);}void main(void) { /* DAC0832主程序*/uchar i,j;i=j=0xff;while(i--) {saw(); /* 产生一段锯齿波*/}while(j--) {square(); /* 产生一段方波*/}}D/A转换 dac0832作者:佚名文章来源:net点击数:395 更新时间:2008-6-5D/A转换、理解DAC0832的内部结构、工作原理、理解D/A转换芯片的性能及编程方法、掌握D/转换芯片与单片机系统的扩展方法。
STM32F10x参考手册第一版STM32F10x参考手册1文档中的约定 (1)1.1寄存器描述中使用的缩写列表 (1)2存储器和总线构架 (2)2.1系统构架 (2)2.2存储器组织 (3)2.3存储器映像 (4)2.3.1外设存储器映像 (5)2.3.2嵌入式SRAM (6)2.3.3位段 (6)2.3.4嵌入式闪存 (6)2.4启动配置 (8)3电源控制(PWR) (9)3.1电源 (9)3.1.1独立的A/D转换器供电和参考电压 (9)3.1.2电池备份 (9)3.1.3电压调节器 (10)3.2电源管理器 (10)3.2.1上电复位(POR)和掉电复位(PDR) (10)3.2.2可编程电压监测器(PVD) (10)3.3低功耗模式 (11)3.3.1降低系统时钟 (12)3.3.2外部时钟的控制 (12)3.3.3睡眠模式 (12)3.3.4停止模式 (13)3.3.5待机模式 (14)3.3.6低功耗模式下的自动唤醒(AWU) (15)3.4电源控制寄存器 (16)3.4.1电源控制寄存器(PWR_CR) (16)3.4.2电源控制/状态寄存器 (17)3.5PWR寄存器映像 (18)4复位和时钟控制 (19)4.1复位 (19)4.1.1系统复位 (19)4.1.2电源复位 (19)4.2时钟 (20)4.2.1HSE时钟 (22)4.2.2HSI时钟 (22)4.2.3PLL (23)4.2.4LSE时钟 (23)4.2.5LSI时钟 (23)4.2.6系统时钟(SYSCLK)选择 (24)4.2.7时钟安全系统(CSS) (24)4.2.8RTC时钟 (24)4.2.9看门狗时钟 (24)4.2.10时钟输出 (25)4.3RCC寄存器描述 (26)4.3.1时钟控制寄存器(RCC_CR) (26)4.3.2时钟配置寄存器(RCC_CFGR) (27)4.3.3时钟中断寄存器 (RCC_CIR) (29)4.3.4APB2外设复位寄存器 (RCC_APB2RSTR) (32)4.3.5APB1外设复位寄存器 (RCC_APB1RSTR) (33)4.3.6AHB外设时钟使能寄存器 (RCC_AHBENR) (35)4.3.7APB2外设时钟使能寄存器(RCC_APB2ENR) (36)4.3.8APB1外设时钟使能寄存器(RCC_APB1ENR) (37)4.3.9备份域控制寄存器 (RCC_BDCR) (39)4.3.10控制/状态寄存器 (RCC_CSR) (40)4.4RCC寄存器映像 (43)5通用和复用功能I/O(GPIO和AFIO) (44)5.1GPIO功能描述 (44)5.1.1通用I/O(GPIO) (45)5.1.2单独的位设置或位清除 (45)5.1.3外部中断/唤醒线 (46)5.1.4复用功能(AF) (46)5.1.5软件重新映射I/O复用功能 (46)5.1.6GPIO锁定机制 (46)5.1.7输入配置 (46)5.1.8输出配置 (47)5.1.9复用功能配置 (48)5.2GPIO寄存器描述 (50)5.2.1端口配置低寄存器(GPIOx_CRL) (x=A..E) (50)5.2.2端口配置高寄存器(GPIOx_CRH) (x=A..E) (51)5.2.3端口输入数据寄存器(GPIOx_IDR) (x=A..E) (52)5.2.4端口输出数据寄存器(GPIOx_ODR) (x=A..E) (52)5.2.5端口位设置/复位寄存器(GPIOx_BSRR) (x=A..E) (53)5.2.6端口位复位寄存器(GPIOx_BRR) (x=A..E) (53)5.2.7端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) (54)5.3复用功能I/O和调试配置(AFIO) (55)5.3.1把OSC_IN/OSC_OUT引脚作为GPIO端口PD0/PD1 (55)5.3.2BXCAN复用功能重映射 (55)5.3.3JTAG/SWD复用功能重映射 (55)5.3.4定时器复用功能重映射 (56)5.3.5USART复用功能重映射 (57)5.3.6I2C 1 复用功能重映射 (58)5.3.7SPI 1复用功能重映射 (58)5.4AFIO寄存器描述 (59)5.4.1复用重映射和调试I/O配置寄存器(AFIO_MAPR) (60)5.4.2外部中断配置寄存器1(AFIO_EXTICR1) (62)5.4.3外部中断配置寄存器2(AFIO_EXTICR2) (62)5.4.4外部中断配置寄存器3(AFIO_EXTICR3) (63)5.4.5外部中断配置寄存器4(AFIO_EXTICR4) (63)5.5GPIO 和AFIO寄存器地址映象 (64)5.5.1GPIO寄存器地址映象 (64)5.5.2AFIO寄存器地址映象 (65)6中断和事件 (66)6.1嵌套向量中断控制器(NVIC) (66)6.1.1系统嘀嗒(SysTick)校准值寄存器 (66)6.1.2中断和异常向量 (66)6.2外部中断/事件控制器(EXTI) (68)6.2.1主要特性 (68)6.2.2框图 (69)6.2.3唤醒事件管理 (69)6.2.4功能说明 (69)6.2.5外部中断/事件线路映像 (71)6.3EXTI 寄存器描述 (72)6.3.1外部中断/事件寄存器映像 (75)7DMA 控制器(DMA) (76)7.1简介 (76)7.2主要特性 (76)7.3功能描述 (77)7.3.1DMA处理 (77)7.3.2仲裁器 (77)7.3.3DMA 通道 (78)7.3.4错误管理 (79)7.3.5DMA请求映像 (79)7.4DMA寄存器 (82)7.4.1DMA中断状态寄存器(DMA_ISR) (82)7.4.2DMA中断标志清除寄存器(DMA_IFCR) (82)7.4.3DMA通道x配置寄存器(DMA_CCRx)(x = 1...7).. (83)7.4.4DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1...7) (85)7.4.5DMA通道x外设地址寄存器(DMA_CPARx)(x = 1...7).. (85)7.4.6DMA通道x存储器地址寄存器(DMA_CPARx)(x = 1...7).. (85)7.5DMA寄存器映像 (86)8实时时钟(RTC) (88)8.1简介 (88)8.2主要特性 (88)8.3功能描述 (88)8.3.1概述 (88)8.3.2复位过程 (90)8.3.3读RTC寄存器 (90)8.3.4配置RTC寄存器 (90)8.3.5RTC标志的设置 (90)8.4RTC寄存器描述 (91)8.4.1RTC控制寄存器高位(RTC_CRH) (91)8.4.2RTC控制寄存器低位(RTC_CRL) (92)8.4.3RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) (93)8.4.4RTC预分频分频因子寄存器(RTC_DIVH / RTC_DIVL) (94)8.4.5RTC计数器寄存器 (RTC_CNTH / RTC_CNTL) (95)8.4.6RTC闹钟寄存器(RTC_ALRH/RTC_ALRL) (95)8.5RTC寄存器映像 (97)9备份寄存器(BKP) (98)9.1简介 (98)9.2特性 (98)9.3侵入检测 (98)9.4RTC校准 (98)9.5BKP寄存器描述 (99)9.5.1备份数据寄存器x(BKP_DRx) (x = 1 ... 10) (99)9.5.2RTC时钟校准寄存器(BKP_RTCCR) (99)9.5.3备份控制寄存器(BKP_CR) (99)9.5.4备份控制/状态寄存器(BKP_CSR) (100)9.6BKP寄存器映像 (101)10独立看门狗(IWDG) (103)10.1简介 (103)10.1.1硬件看门狗 (103)10.1.2寄存器访问保护 (103)10.1.3调试模式 (104)10.2IWDG寄存器描述 (104)10.2.1键寄存器(IWDG_KR) (104)10.2.2预分频寄存器(IWDG_PR) (105)10.2.3重装载寄存器(IWDG_RLR) (106)10.2.4状态寄存器(IWDG_SR) (106)10.3IWDG寄存器映像 (107)11窗口看门狗(WWDG) (108)11.1简介 (108)11.2主要特性 (108)11.3功能描述 (108)11.4如何编写看门狗超时程序 (109)11.5调试模式 (110)11.6寄存器描述 (111)11.6.1控制寄存器(WWDG_CR) (111)11.6.2配置寄存器(WWDG_CFR) (111)11.6.3状态寄存器(WWDG_SR) (112)11.7WWDG寄存器映像 (113)12高级控制定时器(TIM1) (114)12.1简介 (114)12.2主要特性 (114)12.3框图 (115)12.4功能描述 (116)12.4.1时基单元 (116)12.4.2计数器模式 (117)12.4.3重复向下计数器 (125)12.4.4时钟选择 (126)12.4.5捕获/比较通道 (129)12.4.6输入捕获模式 (131)12.4.7PWM输入模式 (132)12.4.8强置输出模式 (132)12.4.9输出比较模式 (133)12.4.10PWM 模式 (134)12.4.11互补输出和死区插入 (136)12.4.12使用刹车功能 (138)12.4.13在外部事件时清除OCxREF信号 (139)12.4.14六步PWM的产生 (140)12.4.15单脉冲模式 (141)12.4.16编码器接口模式 (143)12.4.17定时器输入异或功能 (144)12.4.18与霍尔元件的接口 (145)12.4.19定时器和外部触发的同步 (146)12.4.20定时器同步 (149)12.4.21调试模式 (149)12.5TIM1寄存器描述 (150)12.5.1控制寄存器1(TIM1_CR1) (150)12.5.2控制寄存器2(TIM1_CR2) (151)12.5.3从模式控制寄存器(TIM1_SMCR) (153)12.5.4DMA/中断使能寄存器(TIM1_DIER) (154)12.5.5状态寄存器(TIM1_SR) (156)12.5.6事件产生寄存器(TIM1_EGR) (157)12.5.7捕获/比较模式寄存器1(TIM1_CCMR1) (158)12.5.8捕获/比较模式寄存器2(TIM1_CCMR2) (161)12.5.10计数器(TIM1_CNT) (165)12.5.11预分频器(TIM1_PSC) (165)12.5.12自动重装载寄存器(TIM1_ARR) (165)12.5.13周期计数寄存器(TIM1_RCR) (166)12.5.14捕获/比较寄存器1(TIM1_CCR1) (166)12.5.15捕获/比较寄存器2(TIM1_CCR2) (167)12.5.16捕获/比较寄存器3(TIM1_CCR3) (167)12.5.17捕获/比较寄存器(TIM1_CCR4) (168)12.5.18刹车和死区寄存器(TIM1_BDTR) (168)12.5.19DMA控制寄存器(TIM1_DCR) (170)12.5.20连续模式的DMA地址(TIM1_DMAR) (170)12.6TIM1寄存器图 (171)13通用定时器(TIMx) (173)13.1概述 (173)13.2主要特性 (173)13.3框图 (174)13.4功能描述 (175)13.4.1时基单元 (175)13.4.2计数器模式 (176)13.4.3时钟选择 (183)13.4.4捕获/比较通道 (185)13.4.5输入捕获模式 (187)13.4.6PWM输入模式 (187)13.4.7强置输出模式 (188)13.4.8输出比较模式 (188)13.4.9PWM 模式 (189)13.4.10单脉冲模式 (191)13.4.11在外部事件时清除OCxREF信号 (193)13.4.12编码器接口模式 (193)13.4.13定时器输入异或功能 (195)13.4.14定时器和外部触发的同步 (195)13.4.15定时器同步 (198)13.4.16调试模式 (202)13.5TIMx寄存器描述 (203)13.5.2控制寄存器2(TIMx_CR2) (205)13.5.3从模式控制寄存器(TIMx_SMCR) (206)13.5.4DMA/中断使能寄存器(TIMx_DIER) (207)13.5.5状态寄存器(TIMx_SR) (209)13.5.6事件产生寄存器(TIMx_EGR) (211)13.5.7捕获/比较模式寄存器1(TIMx_CCMR1) (212)13.5.8捕获/比较模式寄存器2(TIMx_CCMR2) (215)13.5.9捕获/比较使能寄存器(TIMx_CCER) (216)13.5.10计数器(TIMx_CNT) (218)13.5.11预分频器(TIMx_PSC) (218)13.5.12自动重装载寄存器(TIMx_ARR) (218)13.5.13捕获/比较寄存器1(TIMx_CCR1) (219)13.5.14捕获/比较寄存器2(TIMx_CCR2) (220)13.5.15捕获/比较寄存器3(TIMx_CCR3) (220)13.5.16捕获/比较寄存器(TIMx_CCR4) (221)13.5.17DMA控制寄存器(TIMx_DCR) (221)13.5.18连续模式的DMA地址(TIMx_DMAR) (222)13.6TIMx寄存器图 (223)14控制器局域网(bxCAN) (225)14.1简介 (225)14.2主要特点 (225)14.3总体描述 (225)14.3.1CAN 2.0B内核 (226)14.3.2控制、状态和配置寄存器 (226)14.3.3发送邮箱 (226)14.3.4接收过滤器 (226)14.3.5接收FIFO (227)14.4工作模式 (228)14.4.1初始化模式 (228)14.4.2正常模式 (228)14.4.3睡眠模式(低功耗) (228)14.4.4测试模式 (229)14.4.5静默模式 (229)14.4.6环回模式 (229)14.4.7环回静默模式 (230)14.5功能描述 (230)14.5.1发送处理 (230)14.5.2时间触发通信模式 (232)14.5.3接收管理 (232)14.5.4标识符过滤 (234)14.5.5报文存储 (238)14.5.6出错管理 (239)14.5.7位时间特性 (239)14.6中断 (241)14.7寄存器访问保护 (243)14.8CAN 寄存器描述 (243)14.8.1控制和状态寄存器 (243)14.8.2邮箱寄存器 (255)14.8.3CAN过滤器寄存器 (260)14.9bxCAN寄存器列表 (264)15I2C接口 (267)15.1介绍 (267)15.2主要特点 (267)15.3概述 (268)15.4功能描述 (269)15.4.1I2C从模式 (269)15.4.2I2C主模式 (271)15.4.3错误条件 (274)15.4.4SDA/SCL线控制 (275)15.4.5SMBus (275)15.4.6DMA请求 (277)15.4.7包错误校验(PEC) (278)15.5中断请求 (279)15.6I2C寄存器描述 (281)15.6.1控制寄存器1(I2C_CR1) (281)15.6.2控制寄存器2(I2C_CR2) (283)15.6.3自身地址寄存器1 (I2C_OAR1) (284)15.6.4自身地址寄存器2(I2C_OAR2) (285)15.6.5数据寄存器(I2C_DR) (285)15.6.6状态寄存器1(I2C_SR1) (285)15.6.7状态寄存器2 (I2C_SR2) (288)15.6.8时钟控制寄存器(I2C_CCR) (289)15.6.9TRISE寄存器(I2C_TRISE) (290)15.7I2C寄存器地址映象 (291)16串行外设接口(SPI) (292)16.1简介 (292)16.2主要特征 (292)16.3功能描述 (292)16.3.1概述 (292)16.3.2SPI从模式 (295)16.3.3SPI主模式 (296)16.3.4单向通信 (297)16.3.5状态标志 (297)16.3.6CRC计算 (298)16.3.7利用DMA的SPI通信 (299)16.3.8错误标志 (299)16.3.9中断 (300)16.4SPI寄存器描述 (300)16.4.1SPI控制寄存器1(SPI_CR1) (300)16.4.2SPI控制寄存器2(SPI_CR2) (302)16.4.3SPI 状态寄存器(SPI_SR) (303)16.4.4SPI 数据寄存器(SPI_DR) (304)16.4.5SPI CRC多项式寄存器(SPI_CRCPR) (304)16.4.6SPI Rx CRC寄存器(SPI_RXCRCR) (305)16.4.7SPI Tx CRC寄存器(SPI_TXCRCR) (305)16.5SPI 寄存器地址映象 (306)17USART收发器(USART) (307)17.1介绍 (307)17.2概述 (308)17.2.1框图 (309)17.2.2USART 特征描述 (310)17.2.3发送器 (310)17.2.4接收器 (312)17.2.5分数波特率的产生 (315)17.2.617.2.6 多处理器通信 (316)17.2.7校验控制 (317)17.2.8LIN(局域互联网)模式 (318)17.2.9USART 同步模式 (320)17.2.10单线半双工通信 (322)17.2.11智能卡 (322)17.2.12IrDA SIR ENDEC 功能块 (324)17.2.13利用DMA连续通信 (325)17.2.14硬件流控制 (326)17.3中断请求 (327)17.4USART寄存器描述 (329)17.4.1状态寄存器(USART_SR) (329)17.4.2数据寄存器(USART_DR) (330)17.4.3波特比率寄存器(USART_BRR) (331)17.4.4控制寄存器1 (USART_CR1) (331)17.4.5控制寄存器2(USART_CR2) (333)17.4.6控制寄存器3(USART_CR3) (335)17.4.7保护时间和预分频寄存器(USART_GTPR) (336)17.5USART寄存器地址映象 (338)18USB全速设备接口(USB) (339)18.1导言 (339)18.2主要特征 (339)18.3方框图 (339)18.4功能描述 (340)18.4.1USB功能模块描述 (341)18.5编程中需要考虑的问题 (342)18.5.1通用USB设备编程 (342)18.5.2系统复位和上电复位 (342)18.5.3双缓冲端点 (346)18.5.4同步传输 (347)18.5.5挂起/恢复事件 (348)18.6USB寄存器描述 (350)18.6.1通用寄存器 (350)18.6.2端点寄存器 (355)18.6.3缓冲区描述表 (358)18.7USB寄存器映像 (361)19模拟/数字转换(ADC) (363)19.1介绍 (363)19.2主要特征 (363)19.3引脚描述 (365)19.4功能描述 (365)19.4.1ADC开关控制 (365)19.4.2ADC时钟 (365)19.4.3通道选择 (365)19.4.4单次转换模式 (366)19.4.5连续转换模式 (366)19.4.6时序图 (367)19.4.7模拟看门狗 (368)19.4.8扫描模式 (368)19.4.9注入通道管理 (369)19.4.10间断模式 (369)19.5校准 (370)19.6数据对齐 (371)19.7可编程的通道采样时间 (371)19.8外部触发转换 (371)19.9DMA请求 (372)19.10双ADC模式 (372)19.10.1同时注入模式 (374)19.10.2同时规则模式 (374)19.10.3快速交替模式 (375)19.10.4慢速交替模式 (375)19.10.5交替触发模式 (376)19.10.6独立模式 (377)19.10.7混合的规则/注入同步模式 (377)19.10.8混合的同步规则+交替触发模式 (377)19.10.9混合同步注入+交替模式 (378)19.11温度传感器 (378)19.12中断 (379)19.13ADC寄存器描述 (381)19.13.1ADC状态寄存器(ADC_SR) (381)19.13.2ADC控制寄存器1(ADC_CR1) (382)19.13.3ADC控制寄存器2(ADC_CR2) (384)19.13.4ADC采样时间寄存器1(ADC_SMPR1) (387)19.13.5ADC采样时间寄存器2(ADC_SMPR2) (387)19.13.6ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) (388)19.13.7ADC看门狗高阀值寄存器(ADC_HTR) (388)19.13.8ADC看门狗低阀值寄存器(ADC_LRT) (388)19.13.9ADC规则序列寄存器1(ADC_SQR1) (390)19.13.10ADC规则序列寄存器2(ADC_SQR2) (390)19.13.11ADC规则序列寄存器3(ADC_SQR3) (391)19.13.12ADC注入序列寄存器(ADC_JSQR) (391)19.13.13ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4) (392)19.13.14ADC规则数据寄存器(ADC_DR) (392)19.14ADC寄存器地址映像 (394)20调试支持(DBG) (396)20.1概况 (396)20.2ARM参考文献 (397)20.3SWJ调试端口(serial wire and JTAG) (397)20.3.1JTAG-DP和SW-DP切换的机制 (397)20.4引脚分布和调试端口脚 (398)20.4.1SWJ调试端口脚 (398)20.4.2灵活的SWJ-DP脚分配 (398)20.4.3JTAG脚上的内部上拉和下拉 (399)20.4.4利用串行接口并释放不用的调试脚作为普通I/O口 (400)20.5STM32F10x JTAG TAP 连接 (400)20.6ID 代码和锁定机制 (401)20.6.1MCU DEVICE ID编码 (401)20.6.2TMC TAP (401)20.6.3Cortex-M3 TAP (401)20.6.4Cortex-M3 JEDEC-106 ID代码 (401)20.7JTAG调试端口 (402)20.8SW调试端口 (403)20.8.1SW协议介绍 (403)20.8.2SW协议序列 (403)20.8.3SW-DP状态机(Reset, idle states, ID code) (404)20.8.4DP和AP读/写访问 (404)20.8.5SW-DP寄存器 (405)20.8.6SW-AP寄存器 (405)20.9对于JTAG-DP或SWDP都有效的AHB-AP (AHB 访问端口) (405)20.10内核调试 (406)20.11调试器主机在系统复位下的连接能力 (407)20.12FPB (Flash patch breakpoint) (407)20.13DWT(data watchpoint trigger) (407)20.14ITM (instrumentation trace macrocell) (408)20.14.1概述 (408)20.14.2时间戳包,同步和溢出包 (408)20.15MCU调试模块(MCUDBG) (409)20.15.1低功耗模式的调试支持 (409)20.15.2支持定时器和看门狗和bxCAN的调试 (409)20.15.3调试MCU配置寄存器 (410)20.16TPIU (trace port interface unit) (411)20.16.1导言 (411)20.16.2跟踪引脚分配 (412)20.16.3TPUI格式器 (414)20.16.4TPUI帧异步包 (414)20.16.5同步帧包的发送 (415)20.16.6同步模式 (415)20.16.7异步模式 (415)20.16.8TRACECLKIN在STM32F10x内部的连接 (415)20.16.9TPIU寄存器 (416)20.16.10配置的例子 (416)20.17DBG寄存器地址映象 (417)STM32F10x参考手册第一版文档中的约定1 文档中的约定1.1 寄存器描述中使用的缩写列表在对寄存器的描述中使用了下列缩写:read / write (rw) 软件能读写此位。