1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

堆栈总结

作者:xiao 分类:硬件笔记 浏览:

单片机的code(keil中运行)值超过某个值的时候程序就不能正常跑的原因之一

    我遇到这个问题的时候,一开始怀疑自己的程序写的不对,然后发现我程序只要多一行就会跑错,不管多的是什么代码,然后就发现了code只要超过7782这个值程序就会跑乱,但是我查看了我的flash是32K的,不可能程序区不够啊,就特别奇怪,百度说可能是什么堆栈溢出,但是程序没有用到堆栈,但是呢这个给了我一个提示,或许我的代码真的有啥溢出了呢,数组还是什么;后面发现程序里面有划分flash程序区和数据区的变量,这个变量太小了,导致划分的程序区小,所以出现溢出
作者:xiao 分类:硬件笔记 浏览:

领悟

知识要运用起来才能体会到它的真正用法
作者:xiao 分类:硬件笔记 浏览:

红外遥控———RC_5编码———定时中断解析出每个按键对应的二进制

    RC_5编码类型的红外遥控,RC_5编码的特点(每一位用时1.8ms,即一位的一个周期是1.8ms;先是2位起始位、1位控制位、5位系统位、6位指令码;其中的起始位都是11,;控制位是为了辨别一直按住还是松开了再按的,当一直按住时这一位则不变;系统码对于同一个遥控器来说,每个按键的系统码都是一样的;指令码则是我们需要的;还需要注意的是我们接收到的位都是反码,所以我们接收到的起始位是00;先高后低则是0,先低后高则是1)。所以基于上面的知识点,我们利
作者:xiao 分类:硬件笔记 浏览:

单片机的时钟理解---讲的很好理解

1.概述简单的说,时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。每个时钟tick,系统都会处理一步数据,这样才能让工作不出现紊乱。2.原理首先,任何外设都需要时钟,51单片机,stm32,430等等,因为寄存器是由D触发器组成的,往触发器里面写东西,前提条件是有时钟输入。51单片机不需要配置时钟,是因为一个时钟开了之后所有的功能都可以用了,而这个时钟是默认开
作者:xiao 分类:硬件笔记 浏览:

单片机休眠与唤醒-----低功耗的总结

    刚开始接触单片机休眠的时候,我以为单片机休眠后就停止了程序运行,其实不是的,他依然在跑程序(看休眠模式,如果是stop模式,中断等程序还在继续跑),只不过他跑的速度变慢了而已。   如果要求很低功耗, 在单片机休眠前要把耗电的硬件都关掉(当然根据需求设置)。   还有要说的就是, 要解决一个问题,你得知道这个问题涉及的点,然后去把来龙去脉了解清楚,才能更好的解决问题;也就是所谓的知己知彼,百战不殆。就比如我这
作者:xiao 分类:硬件笔记 浏览:

关于keil4中:warning C316:unterminated conditionals

今天用Keil4写程序时遇到这个问题:warning C316:unterminated conditionals跑了几个论坛,在审视了一遍代码之后,知道了原因:  像类似XX.C(99):warning C316:unterminated conditionals这种警告的话XX.c文件有一个凌乱的条件编译或预编译。因为C语言中有些头文件中的预编译或宏定义,那么条件编译就避免不了。写条件编译时,可能有忘写一个基本的语句。比如说,你用了条件编译#ifndef而忘记写#endif。因为他们本来就是
作者:xiao 分类:硬件笔记 浏览: