摘要: 相信大家对于结构体都不陌生。在此,分享出本人对C语言结构体的学习心得。如果你发现这个总结中有你以前所未掌握的,那本文也算是有点价值了。当然,水平有限,若发现不足之处恳请指出。代码文件test.c我放在下面。在此,我会围绕以下2个问题来分析和应用C语言结构体:1.C语言中的结构体有何作用2.结构体成员变量内存对齐有何讲究(重点)对于一些概念的说明,我就不把C语言教材上的定义搬上来。我们坐下来慢慢聊吧。=================================================================================================== 阅读全文
posted @ 2014-03-26 13:36 小丁^_^ 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。 需要强调一下的是,复杂的C/C++声明并不是好的编程风格;我这里仅仅是教你如何去理解这些声明。注意:为了保证能够在同一行上显示代码和相关注释,本文最好在至少1024x768分辨率的显示器上阅读。让我们从一个非常简单的例子开始,如下:intn;这个应该被理解为.. 阅读全文
posted @ 2014-03-26 00:42 小丁^_^ 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 众所周知,时钟系统是CPU的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。STM32的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么STM32要有多个时钟源呢?因为首先STM32本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及RTC只需要几十k的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的MCU一般都是采取多时钟源的方法来解决这些问题。首先让我们来看看STM32的时钟系统图吧:在STM32中,有五个时钟源,为HSI、HSE、LSI、 阅读全文
posted @ 2014-03-25 11:28 小丁^_^ 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 这里所讲的STM32系统架构主要针对的STM32F103这些非互联型芯片STM32主系统主要由四个驱动单元和四个被动单元构成。四个驱动单元是:内核DCode总线;系统总线;通用DMA1;通用DMA2;四被动单元是:AHB到APB的桥:连接所有的APB设备;内部FlASH闪存;内部SRAM;FSMC;下面我们具体看一下图中几个总线的知识:①ICode总线:该总线将M3内核指令总线和闪存指令接口相连,指令的预取在该总线上面完成。②DCode总线:该总线将M3内核的DCode总线与闪存存储器的数据接口相连接,常量加载和调试访问在该总线上面完成。③系统总线:该总线连接M3内核的系统总线到总线矩阵,总线 阅读全文
posted @ 2014-03-25 11:26 小丁^_^ 阅读(1814) 评论(0) 推荐(0) 编辑
摘要: 一般运放的datasheet中会列出众多的运放参数,有些易于理解,我们常关注,有些可能会被忽略了。在接下来的一些主题里,将对每一个参数进行详细的说明和分析。力求在原理和对应用的影响上把运放参数阐述清楚。由于本人的水平有限,写的博文中难免有些疏漏,希望大家批评指正。 第一节要说明的是运放的输入偏置电流Ib和输入失调电流Ios .众说周知,理想运放是没有输入偏置电流Ib和输入失调电流Ios .的。但每一颗实际运放都会有输入偏置电流Ib和输入失调电流Ios .我们可以用下图中的模型来说明它们的定义。 输入偏置电流Ib是由于运放两个输入极都有漏电流(我们暂且称之为漏电流)的存在。我们可以理解为,... 阅读全文
posted @ 2014-03-24 10:11 小丁^_^ 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 在学习单片机的时候经常会被这些东西搞晕掉,什么ROM RAM FLASH EEPROM 等等......为了不被搞晕,做个笔记,不记得的时候过来看看。下面是我在网上找的资料:ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CP 阅读全文
posted @ 2014-03-22 14:00 小丁^_^ 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 真心喜欢博客园,有很多模板可以选择,其他的不会再爱了! 阅读全文
posted @ 2014-03-22 10:35 小丁^_^ 阅读(198) 评论(3) 推荐(0) 编辑
摘要: 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模块的嵌入 阅读全文
posted @ 2014-03-20 23:24 小丁^_^ 阅读(3349) 评论(0) 推荐(0) 编辑
摘要: 关于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)的方式... 阅读全文
posted @ 2014-03-20 09:28 小丁^_^ 阅读(326) 评论(0) 推荐(0) 编辑
摘要: RE:USB编程概念>请你指导我如何学习USB虚拟COM端口PROGRAMM,什么是我们needto有(如硬件和软件)的东西。USB是一个典型的复杂的协议栈,在协议的协议。这是很难完全实现对在其中你可以让你自己的堆栈的程度。这需要将近半年的我,直到我理直气壮做了我自己的堆栈。a)您自己的USB协议栈如果你遵循这条路线,开始与现有的例子。试图破译栈源代码,第一。不幸的是,KEIL不提供任何CDC(通信设备类:虚拟COM端口)为例进行STM32F103的。下面是ST的。STM32F10x的,STM32L1xx和STM32F3xx USB全速设备库(UM0424) v4.0.0http://w 阅读全文
posted @ 2014-03-19 13:28 小丁^_^ 阅读(430) 评论(0) 推荐(0) 编辑