单片机/STM32
lin111000713
这个作者很懒,什么都没留下…
展开
-
51单片机实现scanf和printf函数
[置顶]分类: 单片机驱动程序2014-02-27 16:22 475人阅读 评论(0) 收藏 举报51单片机printfscanf源码高级应用最开始学习C语言时,使用printf和scanf进行格式化输入输出十分方便。学习单片机有很长时间了,之前要再屏幕上显示一个变量或者通过串口传出一些变量值观测的话,需要进行一系列的取余取整运算,很是麻烦。最近又研究了一转载 2014-08-05 20:26:13 · 3056 阅读 · 1 评论 -
一个简易的51单片机串口接收和发送程序
程序功能:接收上位机发过来的一个字符串,然后把该字符串发送给上位机, 字符串必须以!结尾**********************/#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit LED = P2^7;uchar flag = 0;uchar in...转载 2018-07-22 10:52:00 · 13227 阅读 · 0 评论 -
51单片机串口通信(字符串接收和发送)
#include<reg52.h>//------------------串口通信协议-----------------///* 客户端数据包格式解释(长度恒为15): 例如:A01_fmq_01Off___# A--------数据包的开始标记(可以为A到Z,意味着数据包可以有26种) 01-----设备代号 fmq_01Off___-...原创 2018-07-22 10:49:33 · 39202 阅读 · 4 评论 -
浅谈单片机应用程序架构----本质是定时调用
浅谈单片机应用程序架构(原创) 2011-11-22 15:39:52| 分类: ARM|举报|字号 订阅 对于单片机程序来说,大家都不陌生,但是真正使用架构,考虑架构的恐怕并不多,随着程序开发的不断增多,本人觉得架构是非常必要的。前不就发帖与大家一起讨论了一下《谈谈怎样架构你的单片机程序》,发现真正使用架构的并不都,而且这类书籍基本没有。转载 2014-07-30 14:52:15 · 1562 阅读 · 0 评论 -
利用一个硬件定时器实现多个虚拟定时器的两种方法
第一种方法比较适合单片机,第二种方法在 PC 上很有优势。1.固定周期法 使用一个硬件定时器进行固定周期(比如 1m s)定时,用一个结构体数组作为软定时器描 述表, 数组的结构体数就是最大虚拟定时器的数量, 每个结构体的成员都包括虚拟定时器状 态(空闲、激活、运行、超时触发、周期触发)、定时值(换算成定时周期数,例如 1m s 的硬 件定时周期, 现进行 125m s转载 2014-08-14 18:06:41 · 4624 阅读 · 1 评论 -
8位单片机中unsigned int的长度是多少
用C写程序,和单片机本身是几位单片机没有任何关系的。你定义了一个int 数据,内存就分配给它两个字节。所以int数据都是16位的。unsigned int 数据是无符号整形,最高位不表示符号,所以从0000,0000,0000,0000B------1111,1111,1111,1111B.即从0x0000----0xffff。如果化成10进制就是0---65535。如果单单是int 型数据,则最转载 2014-08-14 18:05:45 · 10155 阅读 · 3 评论 -
单片机位段占用的字节
struct { volatile unsigned TR:1; //起停标志,0-停止运行,1-开始运行 volatile unsigned TF:1; //溢出标志,0-未溢出,1-溢出 volatile unsigned TV:14; //14位定时值}Timer; // 外存快被用完了,只能用内部的寄存器了原创 2014-08-14 18:14:32 · 1125 阅读 · 0 评论 -
自己写的STM32 内存管理 实现了malloc,free,remalloc等函数
详细参考:http://www.openedv.com/posts/list/954.htm#这两天写的一个STM32上的内存管理函数,实现了malloc和free以及remalloc几个函数.还实现了一个内存使用率查询的函数.思路如下:将内存分块管理.内存池等分为固定大小的内存块.建立一个内存状态表,对应每个块,有多少个块,状态表就有多少个元素,一一对应.通过状态表的转载 2014-08-14 17:26:18 · 4880 阅读 · 1 评论 -
keil51下使用sprintf问题
测试环境:keil c51 + STC89C52说明:1.keil的不定参数只有15个字节也就是说sizeof(...) 加起来总共不能超过15字节,否则会出错 2.当不定参数中有常数时,你也会得不到你想要的结果,字符串除外 例: unsigned char count_sec=2, count_min=3, count_hour=4; xdata char buf[1转载 2014-08-06 11:22:24 · 12029 阅读 · 3 评论 -
Keil C51 uv2中sprintf打印char的问题
Keil C51 uv2中sprintf打印char的问题分类: 单片机 c语言 2012-04-24 11:07 2166人阅读 评论(3)收藏举报cbuffer测试在Keil C51 uv2中使用运行时库函数sprintf打印char类型变量时,使用%x或%d进行格式化时并没有出现希望的数字,而是多打印了一个字节。详细的问题描述和解决办法都在注释转载 2014-08-06 20:44:18 · 1693 阅读 · 0 评论 -
按键状态机实现--解决消抖问题
一般的按键输入软件接口程序非常简单,在程序中一旦检测到按键输入口为低电平(有时可能为高),便采用软件延时的方法来进行消抖,然后再次检测按键输入,如果再次确认为低电平则表示有按键按下,转入执行按键处理程序。如果延时后检测的电平为高电平则放弃本次按键检测,重新开始一次按键检测过程。在简单的系统中这种方法比较可以用,但是在复杂的系统实时性要求较高的系统中这种方法的CPU利用率比较低...转载 2019-07-26 12:38:18 · 3411 阅读 · 1 评论