随笔分类 -  基础还是51

摘要:关于PID算法的介绍与实现 阅读全文
posted @ 2018-03-16 11:54 Andrew_qian 阅读(50997) 评论(3) 推荐(10)
摘要:匿名上位机使用,接收串口传输的数据,并显示波形。 阅读全文
posted @ 2018-03-11 12:03 Andrew_qian 阅读(3260) 评论(1) 推荐(1)
摘要:之前写过一篇HC04的使用文章,当时是使用stm32来实现的,原文链接。 后来又多次使用51来驱动这个模块,有时候有测距需要,使用了几次,总是感觉我上次那个程序不是很好, 所以这次对它进行了改进。虽然上一次也使用了多次测量取平均值,但是内有排除中间会有错误数据的情况。 之前的程序是这样的(测距部分) 阅读全文
posted @ 2018-03-07 19:39 Andrew_qian 阅读(1639) 评论(1) 推荐(0)
摘要:前几天做了6050原始数据的串口输出和上位机波形的查看。这篇博客我们来看一下对原始数据的处理。 任务:利用STC89C52RC对MPU6050原始数据进行滤波与姿态融合。 首先我摘抄了一段别人在昨晚这个实验的写的最后总结。1.尽量不要用MPU6050内置的LPF滤波。虽然相比于原始加速度计输出,该L 阅读全文
posted @ 2017-12-12 23:44 Andrew_qian 阅读(26519) 评论(2) 推荐(6)
摘要:"51单片机编程在不同内存空间data xdata bdata定义变量的注意事项": 关键词:51 单片机 编程 不同 内存空间 data xdatabdata 定义 变量 注意事项 1、data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。 2、 阅读全文
posted @ 2017-12-07 19:52 Andrew_qian 阅读(7151) 评论(0) 推荐(0)
摘要:其实之前就用stm32获取过6050的原始数据,但是当时只是为了用而用,对他的理解并不深入,也不明白到底是怎么获得这些数据的。 这几天回归原始,通过STC89C52RC,再一次对6050进行驱动,并获取原始数据。经过几天的努力,现在其实感觉6050没有想象中的那么复杂,复杂的是后面对他的数据进行的滤 阅读全文
posted @ 2017-12-04 18:10 Andrew_qian 阅读(3769) 评论(0) 推荐(0)
摘要:关于IIC我觉这个博客里面说的已经够清楚了 如下图所示的写操作的时序图: 其实像这种通信协议的要求是很精确的,一点点不对都可能导致在实际工程中无法读取数据。我就是被一个应答位耽误了好久,还好最后被我发现了。虽然程序不长,但是每一句话都是值得我们认真学习的,下面是我自己结合网上还有书中的程序综合的,亲 阅读全文
posted @ 2017-11-28 22:10 Andrew_qian 阅读(5206) 评论(0) 推荐(1)
摘要:这几天实验室有一个关于大一的比赛,说是让开发一个智能寻迹小车。但是作为大三的我,怎能不给他们做个榜样呢?于是我就默默的自己试着开发了一下这个智能车。经过了十多天的时间(中间一个星期在等原件),第四版寻迹小车制作完成。但是现在我还没有告诉我们实验室大一的学弟我在做这个,让他们自己先琢磨一会。 赛道如下 阅读全文
posted @ 2017-11-27 22:10 Andrew_qian 阅读(8066) 评论(1) 推荐(4)
摘要:在51系列单片机上面使用串口的时候,有时候为了方便调试看一下输出结果,会用到printf函数输出到电脑终端,再用串口助手显示。但是单片机使用printf的时候有一点需要注意的地方。 1、首先添加头文件#include "stdio.h",因为printf在这个里面2、然后配置串口,但是在串口初始化的 阅读全文
posted @ 2017-11-16 23:13 Andrew_qian 阅读(14406) 评论(0) 推荐(0)
摘要:谢谢这位同学首先做的笔记,让我明白了很多:http://www.cnblogs.com/freesblog/p/5040474.html 刚开始也是一直乱码,直到昨天我才解决了乱码的问题,原来这一切都是晶振频率惹的祸,今天开始不会乱码了。可以发送单个字符了。但是又出现了一个新的问题,一个很长的字符串 阅读全文
posted @ 2017-11-06 15:37 Andrew_qian 阅读(26897) 评论(3) 推荐(1)
摘要:关于单片机通信波特率的缺点与使用思考 阅读全文
posted @ 2017-11-05 20:04 Andrew_qian 阅读(40483) 评论(1) 推荐(4)
摘要:一直不清楚单片机中程序的执行过程,就是知道一个程序总是从一个main函数开始执行,然后把程序段存放在ROM里面,动态数据存放在RAM里面,而单片机的RAM资源又是及其的稀少,所以要省着用,但是到底怎么个省着用法,我也是云里雾里,这可能就要涉及到具体代码的优化,而且建立在对单片机系统和C的深入理解基础 阅读全文
posted @ 2017-11-03 13:22 Andrew_qian 阅读(414) 评论(0) 推荐(0)
摘要:对于使用RTX51的具体好处可以在实践中去体会,就象会用了C51,就不想再用汇编了。用了RTX51,说不定就感到再也离不开它了。1。RTX51是实时多任务操作系统RTX51是一种实时操作系统既目前在IT媒体中经常看到的很时髦的RTOS。也可以叫做实时内核。它主要解决嵌入式系统的两个重要问题:实时性和 阅读全文
posted @ 2017-11-02 19:32 Andrew_qian 阅读(482) 评论(0) 推荐(0)
摘要:这两天做项目的时候,程序上遇到一个问题,困扰了我很长时间,关于关键字重定义的问题。 我在一个包含了所有头文件的总头文件里面重定义了关键字,但是运行的时候还是报错,当我在这个报错的头文件里面在写一次关键字的重定义的时候,就没有了错误,但是这不就是两次写了相同的内容了吗?所以这不是解决问题的最终手段,一 阅读全文
posted @ 2017-10-29 00:16 Andrew_qian 阅读(1090) 评论(0) 推荐(0)
摘要:编写51程序的时候,有时候会在主函数和中断函数里面调用同一个函数,如果正的出现这种情况,编译器会提出 这种警告: *** WARNING L15: MULTIPLE CALL TO SEGMENT(重复调用同一个函数) 这种情况时因为函数发生了重入,尽管这样出现错误的概率很低,但是一旦出现错误,将会 阅读全文
posted @ 2017-10-28 11:21 Andrew_qian 阅读(5058) 评论(0) 推荐(0)
摘要:传送门:http://www.eeworld.com.cn/mcu/2011/0411/article_3928.html 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的 阅读全文
posted @ 2017-10-25 00:20 Andrew_qian 阅读(504) 评论(0) 推荐(0)
摘要:8位、16位、32位是指单片机的“字长”,也就是一次运算中参与运算的数据长度,这个位是指二进制位。以8位为例,8位二进制的表达范围是0000,0000~1111,1111即十进制的0~255,即每次参与运算的数据最大不能超过255。而16位机的字长是16位,其数据表达范围是0~65535,即每次参与 阅读全文
posted @ 2017-10-25 00:19 Andrew_qian 阅读(11792) 评论(0) 推荐(2)
摘要:说明: 最近在做单片机万年历的时候,由于需要用到LCD-TFT液晶屏的驱动,就上网查资料,资料虽然查到了不少,但是很多都是关于在STM32上面使用的程序,由于对于频率的要求,估计大部分人都是使用32位单片机来驱动,还有就是很多资料和我使用的屏不是同一种型号,找了很久,就是没有找到一个能完美匹配我现状 阅读全文
posted @ 2017-10-25 00:16 Andrew_qian 阅读(724) 评论(0) 推荐(0)
摘要:最近在做万年历,用到实时时钟DS1302模块,花了两天时间看资料和写驱动,想记录一下我的学习经过,顺便做一下总结。 首先就是在图书馆查各种资料,于是查到的大多是这些,主要时硬件方面的资料: 其实能查到很多资料,但是能为我们所用的不是很多。在使用一个芯片时,我一般时按照一下步骤去学习: 1、芯片介绍; 阅读全文
posted @ 2017-10-22 23:42 Andrew_qian 阅读(85077) 评论(1) 推荐(2)