C语言在单片机开发中的应用】的更多相关文章

在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种.对用惯了汇编的人来说,总觉得高级语言’可控性’不好,不如汇编那样随心所欲.但是只要我们掌握了一定的C语言知识,有些东西还是容易做出来的,以下是笔者实际工作中遇到的几个问题,希望对初学C51者有所帮助. 一.C51热启动代码的编制 对于工业控制计算机,往往设有有看门狗电路,当看门狗动作,使计算机复位,这就是热启动.热启动时,一般不允许从头开始,这将导致现有的已测量到或计算到的值复位,导致系统工作异常.因而在程序必须判断是热启动还是…
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> 好几天没写总结了,因为最近特别特别忙,各种驱动的代码都要我去改去测试,我主要最近主要是在搞驱动中数据,文件加密解密这块,就这块内容,便运用到了C语言最核心的两个知识点---数组和指针.</span> 加密数据和文件为什么要用到指针和数组? 首先你要打开一个文件,那么在标准C…
stack 的使用,是单片机开发中影响最大,但是最少被讨论的问题.而提及这个问题的地方,都是对这个问题含糊其辞. 今天花了点时间,使用最笨的办法,直接阅读汇编代码,来对这个问题就行探究,这里做一下记录. 下面是本次实验使用的代码,代码本身没有意义,仅作探讨 stack 相关问题使用: short c; short g(short a) { ] = {0x03}; ; ; i<; i++) { b[] += b[i] + a; } ] < ) g(b[]); ]; } int main(void…
在单片机开发中,NOR_FLASH常用的有4M和8M的大小: 4M的FLASH在程序中可以这样表示:Ptr < 0x220000 8M的FLASH在程序中可以这样表示:Ptr < 0x400000(最大只能读到0x3fffff) 有了这个关系,在判断NOR_FLASH好坏的方法上我们可以采用计算checksum的方式来校验. 在程序中,我们一般把地址的指针定义为unsigned short *ptr 类型.然后通过指针不断的往后移动可以简引用获取到FLASH中的每一个byte,如果此时定义成u…
在单片机开发中,有了Keil的程序编程,Protues的模拟仿真,那么问题来了,怎么去进行电路图设计以及硬件调试呢?此刻就必须引入本文的Altium Designer (下文简称AD)安装与破解.在硬件行业,PCB的设计软件大体包括protel99se.cadence以及AD,但是军哥一直觉得AD不仅仅方便,而且很容易上手:protel99se软件在实验教学中使用的非常多(例如CDUT),cadence则应用很少(厦大).除此之外,AD设计出的PCB可以3D观看,进行元器件位置调整.布局布线等诸…
Hey,大家好!我是CrazyCatJack.今天我来说几个在嵌入式开发中常用的C语言技巧吧.也许你曾经用过,也许你只是见到过但是没有深入理解.那么今天好好补充下吧^_^ 1.指向函数的指针 指针不光能指向变量.字符串.数组,还能够指向函数.在C语言中允许将函数的入口地址赋值给指针.这样就可以通过指针来访问函数.还可以把函数指针当成参数来传递.函数指针可以简化代码,减少修改代码时的工作量.通过接下来的讲解大家会体会到这一点的. /*函数指针简单讲解 *通过指向函数的指 *针调用比较两个数 *大小…
一.前言 在iOS开发中,一个经常的场景是利用tableview展示一组数据,以很多首歌曲为例子.为了便于查找,一般会把这些歌曲按照一定的顺序排列,还会加上索引条以便于快速定位. 由于歌曲名可能有数字.中文.英文.韩文.日文等,要处理多语言文字的排序,有两个问题 对歌曲名进行排序时的规则是什么呢?知道了规则以后,应该调用哪个函数呢? 如何获取每一首歌名的索引项呢? 二.多语言排序的规则 Objective C 中字符串使用NSString这个类表示,每一个NSString其实就是若干UTF–16…
多数FPGA开发者都习惯图形化界面(GUI).GUI方式简单易学,为小项目提供了一键式流程.然而,随着FPGA项目越来越复杂,在很多情况下GUI工具就阻碍了工作效率.因为GUI工具不能对整个开发过程提供足够的灵活性和控制.另一方,GUI工具本身会占用很大一部CPU资源和内存. 脚本语言的选择 在IC和FPGA的最常用的是TCL,Perl以及Shell.除此之外,还有可能用到其他的脚本语言.比如,Xilinx工具脚本语言还有Ruby和Python. TCL 顾名思义,Tool Command La…
C语言开发中常见报错的解决方案 整理来源于网络,侵权请通知删除.*禁止转载 ---- fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误)错误太多,停止编译 解决方案:修改之前的错误,再次编译 fatal error C1004: unexpected end of file found 中文对照:(编译错误)文件未结束 解决方案:一个函数或者一个结构定义缺少"}".或者在一个函数…
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 为什么自己写bootloader 我的第一款自己的serial bootloader是为Microchip PIC16单片机写的UART bootloader,我命其名为HyperBootloader_PIC16. 为什么取这个名字,下面会讲.很多朋友可能会问为什么要自己写bootloader, 百度上一搜,有不少下载下…