摘要:
相信大家对于结构体都不陌生。在此,分享出本人对C语言结构体的学习心得。如果你发现这个总结中有你以前所未掌握的,那本文也算是有点价值了。当然,水平有限,若发现不足之处恳请指出。代码文件test.c我放在下面。在此,我会围绕以下2个问题来分析和应用C语言结构体:1.C语言中的结构体有何作用2.结构体成员变量内存对齐有何讲究(重点)对于一些概念的说明,我就不把C语言教材上的定义搬上来。我们坐下来慢慢聊吧。=================================================================================================== 阅读全文
摘要:
出处: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 & 阅读全文
摘要:
GPIO 的 8 种工作模式在初始化 GPIO 的时候,根据我们的使用要求,必须把 GPIO 设置为相应的模式。如 LED 例程中的 GPIO 引脚如果配置为模拟输入模式是必然会导致错误的。我们配合 GPIO 结构图,来看看 GPIO 的 8 种模式及其应用场合:图的最右端为 I/O 引脚,左端的器件位于芯片内部。I/O 引脚并联了两个用于保护的二极管。四种输入模式结构图的上半部分为输入模式结构。接下来就遇到了两个开关和电阻,与V DD相连的为上拉电阻接下来就遇到了两个开关和电阻,与V DD相连的为上拉电阻,与V SS相连的为下拉电阻。再连接到施密特触发器就把电压信号转化为 0、1 的数字信号 阅读全文
摘要:
函数名与函数指针一 通常的函数调用一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){ MyFun(10); //这里是调用MyFun(10);函数 return 0;}void MyFun(int x) //这里定义一个MyFun函数{ printf(“%d\n”,x);}这个MyFun函数是一个无返回值的函数,它并不完成什么事情。这种调用函数的格式你应该是很熟悉的吧!看主函数中调用MyFun函数的书写格... 阅读全文
摘要:
浮空,顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了.开漏,就等于输出口接了个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引脚电路结 阅读全文
摘要:
12.1. I2C 协议简介 I 2 C ( Inter-Integrated Circuit )协议是由 Phiilps 公司开发的,由于它具引脚少,硬件实现简单,可扩展性强,不需要如 USART、CAN 的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。根据《I 2 C 总线协议版本 2.1-2000》的说明,我们可以更详细地了解 I 2 C 协议。12.1.1. 物理层 (1) 它只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。(2) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问(3) 多主... 阅读全文
摘要:
在拿到开发板之后,很多朋友都跃跃欲试,想自己烧写个程序到开发板上,看看效果。下面我们将演示如何将光盘里面的程序烧写到 ISO(ISO 是野火最新的 STM32 开发板的代号)上,但前提是我们的电脑上必须已经安装了JLINK 驱动和 MDK 开发环境,没有安装的朋友请参考我们的教程。光盘上提供的代码都是已经编译好的,直接下载即可,如果不行,请重新编译一次。 阅读全文
摘要:
电子发烧友网核心提示:本文主要阐述了STM32启动过程全面解析,包括启动过程的介绍、启动代码的陈列以及深入解析。 相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC = 0x000000)同时中断向量表的位置并不是固定的。而Cortex-M3内核则正好相反,有3种情况: 1、 通过boot引脚设置可以将中断向量表定位于SRAM区,即起始地址为0x2000000.. 阅读全文