- 博客(26)
- 资源 (11)
- 收藏
- 关注
转载 状态机思路在单片机程序设计中的应用
状态机的概念状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些,但这不影响我们对状态机的认识。
2013-12-06 20:25:55 6064 1
转载 彻底搞定C语言指针详解-完整版-时候初学者-必备
1.语言中变量的实质要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧!先来理解理解内存空间吧!请看下图:内存地址→ 6 7 8 9 10 11 12 13--------------------------------------------------
2013-12-04 21:57:52 1882
转载 c语言指针详解
指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基
2013-12-04 21:56:19 1109
转载 深入理解C语言指针的奥秘
指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr;
2013-12-04 21:25:31 718
转载 AVR单片机内部EEPROM应用方法
AVR单片机内部集成了EEPROM,但是在GCC写编写EEPROM应用程序的时候,经常会出现读写EEPROM时程序出错,或重启等不正常现象。在软件仿真时也许结果是正确的,但是在片上运行的时候就不正常。困扰很久,终于发现原因在于编译器,已经我们对EEPROM操作说明的理解不正确或不仔细。 操作EEPROM对时序的要求较高。更加Datasheet里的写操作范例程序: while(E
2013-12-02 22:38:52 2062 1
转载 嵌入式系统C语言编程的心得体会(指针篇)
学习使用C语言不能不说到指针,指针的应用是C语言的特点也是精髓所在。没掌握指针的使用方法,也就说明你不会使用C语言。当然使用手法灵活多变,并不见得都要学会,只是说在写程序的时候要有这种思想体现在程序里。其实程序写的是否巧妙很大程度上就体现在指针应用上。 嵌入式C语言编程里面的指针和标准的C概念上是一致的,但是由于使用处理器的构架不同,在实现表示实际对象上略有差别。这个集中体现在有些嵌入式处
2013-12-02 22:36:43 2738
转载 嵌入式系统C语言编程的心得体会(宏应用篇)
在C语言里面宏定义的应用是很灵活的,但是一般讲C语言的书往往并不详细讲述宏的应用,只是简单提一下。宏的应用是程序模块化,通用化一个重要手段。嵌入式系统做多了就会发现其实没给项目应用的底层函数都十分相似,甚至是完全一样,工作方式也很固定。为了能简化编程工作量,通常都是从以往做的项目中将有用的函数先考到一起在做整理,不要的部分就删掉,这样一来,程序看起来似乎一样,但是又有所不同,删来改去的,常常是
2013-12-02 22:35:35 1996
转载 嵌入式系统C语言编程的心得体会(原则篇)
C语言博大精深,玩了很长时间了,一直徘徊在入门处。看了很多别人的编程经验,加上项目程序越做越大,直到这半年来突然有很多体会,明天就要回家了,下午闲来无事也试着总结一些心得体会,喜欢对师弟妹们的学习有所帮助。 首先要说说编程的几个重要原则,看了很多别人的编程经验,更多的是说技巧。技巧能显著提高程序的效率,固然重要但是技巧的掌握靠了还是大量的工程实践,只有在有一定功底后才可以去追求这些编程技
2013-12-02 22:34:24 2346
转载 嵌入式系统C语言编程的心得体会
最近经常在解释程序中指针的应用手法,发现多数人对指针的认识并不完整,捉住了指针的表面现象却没有很好的理解指针的本质特性。上次写指针编的时候也没有很好的解释指针的本质特性,以及这个特性在C语言中的应用方法。 今天就把这些天的体会总结一下,从三个方面来说明这个问题,一是指针相关的名称以其含义,二是指针在C语言编译时的编译器的工作原理,三是应用时的使用注意事项和优缺点。 在这里我以8
2013-12-02 22:32:50 2022
转载 嵌入式软件工程师的技能修炼
点穴: 深入了解至少一种处理器/控制器的体系结构,熟悉其汇编指令。 掌法: 精通C语言,掌握加载技术和编译链接知识。 兵刃: 了解常用存储、通讯和人机接口设备,熟练编写设备驱动程序。 阵法: 嵌入式操作系统的理论和实践。 兵法: 程序设计思想的修炼。推荐阅读成熟的GUI和TCP/IP协议栈代码,体会其设计方法。 需求分析技术。
2013-12-02 22:32:10 803
转载 想成为嵌入式程序员应知道的0x10个基本问题(2)
访问固定的内存位置(Accessing fixed memory locations) 10. 嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的
2013-12-02 22:31:26 829
转载 想成为嵌入式程序员应知道的0x10个基本问题(1)
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值
2013-12-02 22:30:43 526
转载 复杂程序系统构架方法-设备驱动程序
系统越做越复杂,涉及到很多集成外设或者是外部功能模块的操作。这时需要对每个外设或功能模块编写相应的驱动程序,驱动程序编写是复杂系统模块化过程中一个很重要的环节。好坏与否关系系统的稳定性和模块的可重复利用性。 驱动程序是将外设抽象成与硬件无关操作的中间程序,因此驱动程序有两个重要问题要处理,一个是设备的操作流程处理,二是驱动函数调用时传递和返回值的处理。 由于应用程序
2013-12-02 22:24:58 998
原创 AT32UC3C之system clock interface(SCIF)
1、在使用晶振时相应的管脚有SCIF直接控制,不管GPIO做配置没有;2、在复位后外部晶振(OSC0、OSC1)和内部32KHz被禁止;3、外部晶振(OSC0、OSC1)在启动时间内不能输出;4、32KHz晶振是不受sleep controller 控制的,只要被使能了就可以运行;5、PLLs的时钟源可以是OSC0、OSC1和RC8M;6、fGCLK = fSRC/(2*(DI
2013-11-14 17:08:02 1250
原创 AT32UC3C之power manager(PM)
1、CPU、HSB和PBx的时钟可以独立(除HSB)的在运行过程中改变;2、CPU和HSB的时钟频率是一致的,因为HSBSEL寄存器是只读并且当CPUSEL发生变化时强制改变成和CPUSEL一样的值;3、PBx的时钟可以更具需求设置,但是必须满足CPU频率必须大于等于PBx的频率;4、当某一模块连接到HSB总线上时其PBx的频率必须等于CPU的频率;5、运行中对时钟进行重新配置存在
2013-11-14 16:15:54 1273
原创 STM32F407学习之创建工程(KEIL-ARM)
STM32F407学习之创建工程(keil-arm) 我所使用的开发环境是keil 5.0和STM32F4 V1.1.0,由于不想逐个添加图片,所以不再此处叙述,而将文档上传至http://download.csdn.net/detail/chenyi22/6502461。if you will,you can!
2013-11-04 22:17:49 3964
原创 STM32F407学习之硬件认识
经过几天漫长的等待终于在今天下午拿到了STM32F4-DISCOVERY,拿到手卡了一下感觉ST公司出的开发板“精致和实惠”来形容,在网上也看到很多朋友对这款板子有介绍,我也就应用他们的话来简单介绍一下,也方便自己翻阅。 STM32F4-DISCOVERY提供如下个特点:STM32F407VGT6微控制器有1M的FLASH存储器,192K的RAM,LQFP100封装板
2013-11-04 20:32:17 3114
原创 STM32F407学习之时钟
时钟为系统有条不紊的工作提供支持,所以时钟的学习是非常重要的。 首先来看看STM32F407的时钟树: 由时钟树可以看出可以为该设备提供时钟的有:HSI(内部高速时钟16MHz)、HSE(外部高速时钟4~26MHz,常使用8MHz)、LSI(内部低速时钟32KHz)和LSE(外部低速时钟32.768KHz). 可以为系统时钟(SYSCL
2013-11-03 21:10:02 2344
原创 STM32F407学习之初始STM32F407
STM32F407是基于高性能ARM Cortex™-M4的32位RISC(精简指令集)内核,工作频率高达168 MHz。Cortex-M4核心功是能支持所有ARM单精度的单精度浮点单元(FPU)数据处理指令和数据类型、它还能实现DSP全套指令和内存保护单元(MPU),从而提高应用程序的安全性。 STM32F407采用高速嵌入式存储(多达1 MB闪存,高达192 KB的SRAM),
2013-11-02 19:39:49 4874 1
原创 在Linux中解决command not found的方法
当在命令行中输入export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:这样只是可以临时恢复环境变量设置,然后就可以用了但是想一直有用的话#或者$ cd ~vi .bashrc或者vi .bash_profile然后把上边那句写进去,好象要加点什么吧。export PATH=/usr/bin:/usr/sbi
2013-08-25 20:51:16 4837
原创 TMS320F28335 ADC模块的学习
TMS320F28335内部包含12位AD转换器,其功能有:具有内置(采样保持)S/H的12位ADC内核模拟输入:0.0V至3.0V(高于3.0V的电压产生满刻度转换结果)。快速转换率:在25MHzADC时钟12.5MSPS上时高达80ns16个专用ADC通道。每次采样/保持都有复用的8通道自动定序功能在单次会话中可提供多达16次“自动转换”。可将每次转换编程为选择
2013-05-28 14:05:57 11089
原创 CCS编译中常常遇到的问题以及解决办法
1、warning: creating .stack section with default size of 400 (hex) words.这是因为没有在Project---Build Option---Linker中-stack没有设定值。2、warning: creating .sysmem section with default size of 400 (h
2013-05-28 12:21:58 11960 1
转载 F28335的位域和寄存器结构的学习
实现位域和寄存器文件结构体的具体步骤(以SCI外设为例)1)、定义一个寄存器文件结构体,SCI外设的寄存器在结构体中按实际的地址由低向高依次列出。/********************************************************************* SCI header file* Defines a register file structu
2013-05-28 10:08:05 3229
原创 android常用控件学习之TextView和EditView
TextView就是文本显示,这也是非常常用的控件之一。下面看看如何在layout中创建一个TextView: android:id="@+id/text_view" //设置id号 android:layout_width="fill_parent" //横向填充满 android:layout_heig
2012-12-14 15:24:37 751
原创 android常用控件学习之Button
widget包中包含了各种UI元素(大部分可见)在应用程序的屏幕中使用,如按钮、类表框、图片显示、进度条、文本框等等。首先看一下按钮(Button),按钮通常以“终结者”的身份出现,一般是在按键的时候结束当前动作,然后开始一系列新的动作。下面看看如何在layout中创建一个Button: android:id="@+id/button"
2012-12-14 14:52:52 545
STM32F4固件库
2013-10-30
at24c02 IIC协议
2011-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人