随笔分类 - STM32学习日志
摘要:介绍本指南的目的是大家感兴趣的惯性MEMS(微机电系统)传感器,特别是加速计和陀螺仪和IMU组合设备(惯性测量单元)。例如IMU单位:Acc_Gyro_6DOF对MCU处理单元UsbThumb提供的USB/串行连接顶部我会尽力尝试在本文中介绍一些基本而重要的话题:- 什么是加速度计测量 - 什么是陀螺仪(又名陀螺仪)测量 - 如何转换模数转换(ADC)的读数,你从这些传感器获取物理单位(这些是g,加速度传感器,度/秒陀螺仪) - 如何结合加速度计和陀螺仪的读数,以获取有关设备相对于你的倾斜度的准确信息,以地平面在整篇文章中,我会尽量保持数学到最低程度。如果你知道什么是正弦/余弦/正切是,那么你
阅读全文
摘要:在学习单片机的时候经常会被这些东西搞晕掉,什么ROM RAM FLASH EEPROM 等等......为了不被搞晕,做个笔记,不记得的时候过来看看。下面是我在网上找的资料:ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CP
阅读全文
摘要:FATFS模块应用笔记如何港范围内存使用模块尺寸缩小长文件名统一的API重入复制文件访问性能有效文件访问对闪存介质考虑关键的第延长使用FATFS API关于FATFS许可证如何港基本考虑该FATFS模块假设对便携性下列条件。ANSI C的FATFS模块是用ANSI C编写(C89)中间件。没有平台依赖性,只要编译器符合ANSI C。整数类型的大小的FATFS模块假定为char的大小/短/长是8/16/32位和int是16位或32位。这些信件中定义integer.h。这会不会是在大多数编译器的一个问题。当与现有定义的任何冲突发生,你必须谨慎解决。系统各组织下面所示的依赖图是用FATFS模块的嵌入
阅读全文
摘要:关于I2C和SPI总线协议IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。 IIC 开发于1982年,当时是为了给电视机内的CPU和外围芯片提供更简易的互联方式。电视机是最早的嵌入式系统之一,而最初的嵌入系统是使用内存映射(memory-mapped I/O)的方式...
阅读全文
摘要:概观本教程是为出发点使用NI-VISA与USB设备进行通信。它不打算作为一个起点,学习USB构架或USB通讯中使用的各种协议。阅读本教程后,您应该能够安装一个USB设备,并使用NI-VISA与该设备进行通信,只要你理解了设备的通信协议。目录USB与VISA的背景配置NI-VISA来控制USB设备使用NI-VISA以沟通与您的USB设备USB在Linux®和Mac1。USB与VISA的背景VISA是用于仪器总线进行通信的高级API。它是独立于平台,独立总线和环境的独立。换句话说,相同的API使用,而不管程序是否被创建到一个USB设备使用LabVIEW在机器运行的是Windows 7或与
阅读全文
摘要:出处:http://www.chuxue123.com/forum.php?mod=viewthread&tid=122&ctid=3__I、 __O 、__IO是什么意思?这是ST库里面的宏定义,定义如下:#define __I volatile const /*!< defines 'read only' permissions */#define __O volatile /*!< defines 'write only' permissions */#define __IO volatile /*!< defines &
阅读全文
摘要:浮空,顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了.开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极 是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出高就不能实现了.推挽,就是有推有拉,任何时候IO口的电平都是确定的,不需要外接上拉或者下拉电阻.(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mo
阅读全文
摘要:I2C总线定义 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。
阅读全文
摘要:概述:I²C是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee", 它是一种两线接口。I²C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。输出级每一个I2C总线器件内部的SDA、SCL引脚电路结
阅读全文
摘要:电子发烧友网核心提示:本文主要阐述了STM32启动过程全面解析,包括启动过程的介绍、启动代码的陈列以及深入解析。 相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC = 0x000000)同时中断向量表的位置并不是固定的。而Cortex-M3内核则正好相反,有3种情况: 1、 通过boot引脚设置可以将中断向量表定位于SRAM区,即起始地址为0x2000000..
阅读全文
摘要:有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(7)GPIO_Mode_AF_OD 复用开漏输出(8)GPIO_Mode_AF_P...
阅读全文
摘要:USB基本知识USB的重要关键字:1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。3、上行、下行:设备到主机为上行,主机到设备为下行下面以一问一答的形式开始学习吧。问题一:USB的传输线结构是如何的呢?答案一:一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,
阅读全文
摘要:引子STM32的硬件I2C很多人都对它望而却步。因为很多电工都说,STM32 硬件 I2C有BUG、不稳定、死机等等……最后都使用GPIO模拟I2C。的确,模拟I2C好用。但是在我看来在一个72M的Cortex-M3的MCU上这样做非常不妥。一般来说I2C是一种慢速总线,就算工作在400kHz的快速模式上,I2C传送每个字节仍需要至少23us——还没有计算地址、起始信号和结束信号的发送。如果使用GPIO模拟的I2C,这23us的CPU时间都在空转中浪费了,而这23us已经可以做不少的事情了,所以在STM32上I2C还是使用硬件为佳——虽然它多多少少有点缺陷。这篇文章不是给完全没有接触过STM3
阅读全文
摘要:来自:http://bbs.ednchina.com/BLOG_ARTICLE_2154168.HTMI2C 总线在所有嵌入式系统中用得极广, 是一个工业级别的总线, 但由于STM32 是一个32位的MCU, 注定了他的I2C硬件接口将会功能强大, 但同时也会较难于控制,不象8位机,如AVR8位机的TWI(实际完全符合 I2C标准) 那么易用. 以下是我的STM32 I2C硬件接口编程的一些心得体会. 如果你选择了STM32, 说明了你的项目的需求是比较复杂的,使用EMBEDDED OS 和大量地运用中断+DMA的编程模型是必然的选择, 如果你的项目中用STM32,而你用模拟的I2C的话, 说
阅读全文
摘要:来自:http://jinyong314.blog.163.com/blog/static/30165742201052225415901/字节 8位半字 16位字 32位Code, RO-dataRW-data,ZI-dataCode为程序代码部分RO-data 表示 程序定义的常量 const temp;RW-data 表示 已初始化的全局变量ZI-data 表示 未初始化的全局变量Program Size: Code="18248" RO-data=320 RW-data=260 ZI-data=3952Code, RO-data,RW-data ..........
阅读全文
摘要:特别说明:原创教程,未经许可禁止转载,教程采用回复可见的形式,谢谢大家的支持。armfly-x2,x3,v2,v3,v5开发板裸机和带系统的emWin工程已经全部建立,链接如下:http://bbs.armfly.com/read.php?tid=1830SEGGER公司介绍 了解emWin之前,先了解一下SEGGER这家公司,了解生产商才能对emWin有更加全面的认识。 SEGGER公司成立于1997年,到现在的2013年,有差不多16年的历史了,这家公司主要有两个office,一个是在德国的Hilden,另个在美国的Massachusetts。官网还有一个他们工作地方的照片,看着很不错,我
阅读全文
摘要:来自:http://blog.sina.com.cn/s/blog_6ebd49350100pzju.html最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN模拟输入(2)GPIO_Mode_IN_FLOATING浮空输入(3)GPIO_Mode_IPD下拉输入(4)GPIO_Mode_IPU上拉输入(5)GPIO_Mode_Out_OD开漏输出(6)GPIO_Mode_Out_PP推挽输出(7)GPIO_Mode_AF_OD复用开漏输出(8)GPIO_Mode_AF_PP复用推挽输出对于刚入门的新手,我想这几个概念是必须得
阅读全文
摘要:本帖最后由 kunkka_lu 于 2011-03-15 14:23 编辑因为要交一篇关于 SPI 总线的论文, 所以这一阵子对 SPI 作了一些小的总结, 打算在这里和大家交流一下, 希望大家多给我提出一些建议, 指出一些错误以及不足之处, 不胜感激---------------------------------------------------------华丽的分割线--------------------------------------------------------------------一、概述. SPI, Serial Perripheral Interface, 串行
阅读全文
摘要:花了一天的时间,总算是了解了SystemInit()函数实现了哪些功能,初学STM32,,现记录如下(有理解错误的地方还请大侠指出):使用的是3.5的库,用的是STM32F107VC,开发环境RVMDK4.23我已经定义了STM32F10X_CL,SYSCLK_FREQ_72MHz函数调用顺序:startup_stm32f10x_cl.s(启动文件) → SystemInit() → SetSysClock() →SetSysClockTo72()初始化时钟用到的RCC寄存器复位值:RCC_CR = 0x0000 xx83; RCC_CFGR = 0x0000 0000;RCC_CIR = 0
阅读全文
摘要:在头文件 中 1 /* exact-width signed integer types */ 2 typedef signed char int8_t; 3 typedef signed short int int16_t; 4 typedef signed int int32_t; 5 typedef signed __int64 int64_t; 6 7 /* exact-width unsigned integer types */ 8 typedef unsigned ch...
阅读全文

浙公网安备 33010602011771号