自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (8)
  • 收藏
  • 关注

原创 C语言数组形双向链表的处理

指针形链表的试用已经非常方便,可以带参数结点,但在某些情况下,还会用到数组形链表,因此做以总结,具体如下:alist.h//// Created by helios on 2019/1/27.//#ifndef ALIST_H#define ALIST_H#include <stdint.h>#define LIST_NULL 0xFFFFtypede...

2019-01-27 21:07:54 723

原创 单线程轮训裸机OS程序

近日在学习STM32单片机操作系统之余,写了如下单线程轮训裸机OS程序,分享出来与大家共同进步,如有错误或不足之处,敬请谅解,尊听指导。此单线程轮训裸机OS具有一下特点:1.以系统滴答时钟为驱动持续工作;2.任务具有关闭、睡眠、执行、延时、等待共五种状态;3.任务ID及任务数需在系统运行前就确定;4.任务执行过程中可根据需要随时对任务进行关闭,打开,睡眠及唤醒操作;

2016-01-22 22:04:04 838

原创 蛋疼的C语音字符串拷贝 strncpyr

uint8_t *strncpyr(uint8_t *dest, const uint8_t *src, int8_t r, int32_t n){ int32_t pos = 0; for(pos = 0; ((src[pos] != '\0') && (src[pos] != r) && (pos < n)); pos++)...

2015-10-30 19:09:31 562

原创 又一个简单而强大的单片机内存管理器-不带内存碎片整理

与之前的单片机内存管理实现思路不同前者为将内存区域划分为固定大小的块,通过每个块的状态来分配内存,获取到的是连续的内存块,则相应的,内存也是连续的。此次新的内存管理是将整个待分配的内存块看作一个空闲内存描述结构加内存区域,申请一块内存是将空闲且大小合适的内存一分为二或整块获取来实现,释放内存是将当前内存与前后空闲内存合并完成的,有双向链表的意思。memory.h

2015-08-25 21:45:50 2461

原创 FATFS-f_deldir-删除文件夹(删除子文件夹及文件连同其本身)

//====================================================================================================//函 数 名 : f_deldir//函数功能 : 移除一个文件夹,包括其本身和其子文件夹,子文件//输 入 : const TCHAR *path---指向要移除的空结尾字符串对象

2015-08-20 09:59:15 12363 2

原创 一个简单而强大的单片机内存管理器-不带内存碎片整理

单片机简单内存管理器本代码基于无操作系统的STM32单片机开发,功能强大,可申请到地址空间连续的不同大小的内存空间,且用户接口简单,使用方便memory.h#ifndef __MEMORY_H__#define __MEMORY_H__#include "stdio.h"#include "string.h"#include "includes.h"//用户使用t

2015-07-10 19:13:41 6645 5

原创 Windows环境下ARM集成开发环境的搭建与使用

Windows环境下可以使用Eclipse IDE for C/C++ Developers来搭建ARM开发环境安装步骤如下:1. 安装Java SE网址:http://www.oracle.com/technetwork/java/javase/downloads/jre-7u3-download-1501631.html下载这个文件:jre-7u3-windows-i586

2014-06-12 20:39:37 8705 2

原创 软件定时器-闹钟提醒我们该吃饭吃饭,该睡觉睡觉

闹钟提醒我们该吃饭吃饭,该睡觉睡觉softwaretimer.h#ifndef _SOFTWARETIMER_H_#define _SOFTWARETIMER_H_typedef enum{z_false = 0, z_true = !z_false} z_bool;typedef unsigned char

2014-06-06 10:51:03 2134

原创 时间,给了我们起点,从此,我们开始创造历史

时间,给了我们起点,从此,我们开始创造历史世纪秒:2000年1月1日0时0分0秒到现在的秒数datetime.h文件:#ifnded _DATETIME_H_#define _DATETIME_H_typedef unsigned char z_u8;typedef signed char z_

2014-05-29 19:36:47 1321

原创 根据经纬度计算地球表面两点间的距离

#define PI 3.1415926#define EARTH_RADIUS 6371004#if 0double rad(double d){ return d * PI / 180.0;}#else#define rad(d) ((d)*PI/180.0)#endifdouble getDistanceVer1(double lat1, double lng1, double lat

2014-01-09 23:55:01 4960

原创 嵌入式开发环境搭建-Ubuntukylin_13.10 64位配置

一:安装arm-linux-gcc1.下载arm-linux-gcc安装包:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz或其他版本2 使用命令将压缩包解压到根目录:tar -xvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /3 测试本系统是否可以运行此版本的arm-linux-gcc进入/o

2013-12-04 00:47:06 1981

转载 Ubuntu安装tftp服务器

转自:http://blog.sina.com.cn/s/blog_6c8792060100nwkl.html检查tftp是否已经安装:netstat -a | grep tftp 若出现:udp    0      0 *:tftp 则说明已经安装,否则没有。 1、安装相关软件包apt-get install tftpd (服务端)apt-get inst

2013-11-29 01:29:23 1207

原创 Linux C学习笔记-排序算法6-二路归并排序

归并排序基本思想:将两个或两个以上的有序序列合并成一个新的有序序列:这种归并方法称为2路归并。将3个有序序列归并为一个新的有序序列,成为3路归并;将多个有序序列归并为一个新的有序序列,成为多路归并。检测两个有序序列A和B,C为归并后的新的有序序列:当i和j都在两个序列内变化时,根据关键码的大小,较小的数据元素排放到新序列k所指位置中;当i和j中有一个已经超出

2013-11-24 15:28:01 1334

原创 Linux C学习笔记-排序算法5-希尔排序

希尔排序希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。基本思想将待排序列划分为若干组,在每一组内进行插入排序,以使整个序列基本有序,然后再对整个序列进行插入排序。例如,将n个数据元素分成d个自序列:{R[1],R[1 + d],R[1+2d],...,R[1+kd]}

2013-11-23 22:24:30 1106

原创 Linux C学习笔记-排序算法4-快速排序

快速排序设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第1个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。排序步骤一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N

2013-11-17 17:04:11 1130

原创 Linux C学习笔记-排序算法3-选择排序

选择排序每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。算法步骤1 依次遍历数列的无序部分(第一次认为整个数列都为无序)2 找出最小(或最大)的一个元素3 将找出来的最小元素与无序数列第一个元素交换,使得无序数列的第一个元素也变成有序数列4 重复上述步骤,直到无序数列中剩下一个元素为止C语言示例

2013-11-17 16:09:36 1135

原创 Linux C学习笔记-排序算法2-冒泡排序

冒泡排序冒泡排序(Bubble Sort,或称:泡沫排序、气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。基本概念冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一

2013-11-17 15:20:50 1318

原创 Linux C学习笔记-排序算法1-插入排序

插入排序插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。基本思想有一个已经有序的数据序列,要求

2013-11-17 14:08:23 1236

原创 Linux-C学习笔记-双向循环链表(支持DEBUG调试)

/*************************************************************************** 文件名 : DbCircleList.c* 文件说明 :本文件是循环链表的实现函数,包括链表创建,删除,清空,获取链表长度,* 获取链表结点,删除链表结点,链表逆序操作,适用于任意类型的数据结点,*

2013-11-13 12:08:18 840

原创 Linux-C学习笔记-循环链表

学完了单链表,循环链表当然得学习循环链表与单链表的区别就在于单链表最后一个节点的next指针指向NULL,而循环链表的最后一个节点的next指针指向第一个数据节点以下是循环链表的头文件、实现文件及测试文件,适用于任何类型的数据节点/******************************************************************************

2013-11-11 14:56:35 847

原创 系统大小端模式存储示意图

2013-11-10 12:20:47 1348

原创 Linux-C学习笔记--单链表的“浮云”操作

链表在C语言项目中很常见,学号链表,先从单链表开始,通常在学习阶段的单链表实现是基于某种数据类型或结构量身定做的操作方法,这种方法,没有通用性,在实际项目开发中,段不可取。于是乎,学习一种“浮云”般对单链表的操作是非常重要的。我们研究各个数据结点的数据,就会发现,无论它是什么类型,都有一个共同的特点,就是,他们都是存储在内存中的,它们拥有各子唯一的内存地址,于是乎,我们使用单链表的每个结点存储目标

2013-11-10 12:17:16 1716

原创 Linux-C学习笔记-一劳永逸的顺序表

C语言学习笔记之——一劳永逸的顺序表顺序表用来将同一类型的数据结点顺序存储于内存中,在学习阶段,通常是给一种数据类型创建一组顺序表操作函数,写多了就会发现,所有的顺序表操作基本上都相同,对于要在一个项目中写多组顺序表操作函数的做法,显然不可取,于是乎,学习了一种通用顺序表操作函数,采用顺序表存储数据节点地址的方式,建立顺序表,之后,对于各个结点的操作都用指针来操作,具体头文件及实现文件如下,下

2013-11-10 11:50:59 1229 2

转载 Make Menuconfig简介

目录(?)[+]Make Menuconfig简介make menuconfig 图形化的内核配置make mrproper -----删除不必要的文件和目录. #make config(基于文本的最为传统的配置界面,不推荐使用) #make menuconfig(基于文本选单的配置界面,字符终端下推荐使用) #make xconfig(基于图形窗口模式的配置界

2013-09-25 22:43:28 803

原创 烙铁使用注意事项及元器件件焊接要点

元器件的焊接要点  用电烙铁焊接元件是基本的装配工艺,它对保证电子产品的质量起着关键的作用。下面介绍一些元器件的焊接要点。  1. 焊接最好是松香、松香油或无酸性焊剂。不能用酸性焊剂,否则会把焊接的地方腐蚀掉。 2. 焊接前,把需要焊接的地方先用小刀刮净,使它显出金属光泽,涂上焊剂,再涂上一层焊锡。 3. 焊接时电烙铁应有足够的热量,才能保证焊接质量,防止虚焊和日久脱焊。

2013-09-16 14:19:14 2500

原创 AT89S8253片内EEPROM字节读、字节写、页读、页写驱动代码、注意事项及注释

在编写AT89S8253片内EEPROM读写驱动程序时,要特别注意数据读写指令MOVX;当EECON寄存器的EEMEN位置位时,MOVX访问EEPROM;当EECON寄存器的EEMEN位清零时,MOVX访问外部RAM;一般情况下,我们定义的用来写入EEPROM的数据或保存EEPROM读取的数据都用外部RAM;代码具体分析如下:C语言页写入代码:unsigned char W_E

2013-09-14 10:42:05 2720

通用简易数据传基础输协议库FAP

通用简易数据传基础输协议库FAP,是基于标准C语言的通用库,可移植到各类C/C++的工程中,作为模块间、板间、C/S间传输的基础协议,尤其适合微系统,体积小,效率高。 FAP.rar文件包含fap库文件和fap简易测试代码,另外,还包含CLion工程文件,下载后可用CLion直接打开运行。 如有错误或希望改进的地方,请评论指出。

2019-08-26

C语言数组型双向链表的处理

ALIST是一段基于C语言的数组型双向链表的处理代码,接口简单明了,易于使用,标准C语言开发,可添加在任何C/C++语言工程中,需要注意的是,如果使用了操作系统,请自行在库中修改指向处添加资源锁定,避免因操作系统的切换,造成的链表错误的问题。 ALIST.rar文件包包含了ALIST库文件及基本测试代码,使用了CLion开发工具,有CLion工程文件,下载后可直接打开运行测试。 库文件若有错误或其他优化点,请评论指出,谢谢。

2019-08-26

C语言数组形链表实现

原创C语言数组形链表操作的具体接口,定义简单,逻辑清晰

2019-01-27

A1852S数据手册

A1852S是一款性价比极高的全集成对讲机Module,内置高性能射频收发芯片、微控制器以及射频功放(PA)。 外部控制器通过标准的异步串行接口(RS232)设置模块的参数、功能,并可通过串口AT指令控制整个模块的收发。 该模块体积小、集成度高、性能稳定、应用灵活,且符合世界大多数国家对讲机标准,很容易通过 CE/FCC 等认证;采用此模块可做成小型对讲机,也可将模块嵌入到其它手持终端设备以实现无线对讲功能。

2019-01-11

GD25Q80C.pdf

兆易出的GD25Q80C的SPI Flash,于AT系列Flash基本兼容

2019-01-11

STM32F0系列单片机I2C驱动程序

STM32F0系列单片机模拟I2C驱动程序,已封装好接口,配置引脚后可直接使用

2019-01-11

光电编码器原理结构图

所谓编码器即是将某种物理量转换为数字格式的装置。运动控制系统中的编码器的作用是将位置和角度等参数转换为数字量。可采用电接触、磁效应、电容效应和光电转换等机理,形成各种类型的编码器。运动控制系统中最常见的编码器是光电编码器。

2013-10-23

linux常用命令

linux常用命令.pdf完整介绍了linux环境下常用命令,及用法,非常适合初学者学习查阅

2013-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除