自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IRQHandler的博客

博客的文章会不定时的进行更新,有错误的地方还望各位指出。

  • 博客(36)
  • 资源 (3)
  • 收藏
  • 关注

原创 C语言--动态数组的实现

动态数组(dynamic array),顾名思义就是能改变大小的数组。使用动态数组可以有效的提高内存利用率。代码附上:头文件:dynamic_array.h#ifndef __DYNAMIC_ARRAY_H__#define __DYNAMIC_ARRAY_H__//动态数组结构体struct dynamic_array{ void **pAddr; //真实的数组指针 int m_capacity; //数组容量 int m_size; /

2020-12-20 23:23:33 692 1

原创 C语言--栈的链式存储

上篇博客实现了栈的顺序存储,今天来实现栈的链式存储。上代码:includes.h:#ifndef __INCLUDES_H__#define __INCLUDES_H__#ifdef __cpluscplus extern "C" { #endif #include<stdio.h>#include<string.h>#include<stdlib.h>#include "chain_stack.h"#include "tes

2020-09-21 23:20:38 276

原创 C语言--栈的顺序存储

栈的定义(摘自百度百科):栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。下面用C语言实现栈的顺序存储,直接上代码。在includes.h文件里,包含了程序需要运行的所有头文件#ifndef __INCLUDES_H__

2020-09-21 23:19:00 351

原创 LeetCode刷题--回文数

题目:c语言解法:bool isPalindrome(int x){ //负数不是回文数 if(x < 0) { return false; } int tmp1 = x; long tmp2 = 0; //int类型会导致数据溢出 while(tmp1) { tmp2 = tmp2 * 10 + tmp1 % 10; tmp1 = tmp1 / 10; }

2020-08-06 15:40:25 163

原创 C语言标准宏

C语言定义了一些标准宏,可以直接使用。#include <stdio.h>/*__DATE__ 当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量。__TIME__ 当前时间,一个以 "HH:MM:SS" 格式表示的字符常量。__FILE__ 这会包含当前文件名,一个字符串常量。__LINE__ 这会包含当前行号,一个十进制常量。__STDC__ 当编译器以 ANSI 标准编译时,则输出 1。__func__ 所在函数名的字

2020-07-31 16:31:24 818

原创 C语言--回调函数

回调函数就是通过函数指针调用的函数。#include<stdio.h>/* *说明:回调函数的三种简单实现 *备注:可通过切换宏定义来更换不同实现方法 *///#define CALLBACK_FUN1//#define CALLBACK_FUN2#define CALLBACK_FUN3#ifdef CALLBACK_FUN1void (*pfun)(int);int print_value(int value);int main(void){ .

2020-07-30 20:29:51 230

原创 C语言--深入理解数据类型

一、数据类型本质分析1.数据类型的本质说到数据类型,许多学过C语言的程序员都不陌生,总的概括为四种类型,见下图。 提一个问题,数据类型和内存有关系吗?这么说吧,数据类型是固定内存大小的别名,这就是数据类型的本质。站在C编译器的角度去看这句话,很快就能明白。在编程时,我们声明了一个int变量,就相当于告诉C编译器要给该变量分配四个字节的内存。懂了没?我们可以通过运行下面这段代码来加深理解。#include<stdio.h>...

2020-07-27 21:39:46 291

原创 数据结构与算法--插入排序(Insertion sort)

插入排序也是一种简单的排序算法,其做法就是将数据插入到已经排好序的序列中,形成新的有序序列。对于元素数量比较少的待排序序列来说,插入排序是比较高效的。代码如下:#include <stdio.h>#define ARRAY_LEN 10void array_print(int *array,int array_len);void insert_sort(int *array,int array_len);int main(void) { int a[ARRAY_

2020-07-18 17:12:49 194

原创 LeetCode刷题--转换小写字母

题目:C语言解法:#if 0char * toLowerCase(char * str){ char * ret = str; while(*str!='\0') { if(*str >= 'A' && *str <= 'Z') { *str+=32; }...

2020-07-16 21:42:52 117

原创 LeetCode刷题--反转字符串

题目:C语言解法:void reverseString(char* s, int sSize){ char *head = s; char *end = s + sSize - 1; char temp; while(head < end) { temp = *head; *head = *en...

2020-07-16 21:41:57 129

原创 数据结构与算法--排列(permutation)问题

百度百科关于排列的定义如下:一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(permutation)。有一个简单的排列问题:假如有a,b,c三个数,它们有多少种排列方式,各是什么?这个题的答案很快就能想到,一共有6种不同的排列方式(abc、acb、bac、bca、cba、cab)。那假如是四个数,五个数呢?接下来我们用C代码来实现这个排列问题。代码如下:#include<stdio.h>#define.

2020-07-16 21:41:20 408

原创 数据结构与算法--递归(factorial)

计算阶乘的递归代码如下:#include <stdio.h>#define FUNCTION_TRUE 1#define FUNCTION_FALSE 0void print_loop(void);long factorial(int n);long iterative_factorial(int n);int main(void){ int a = 3; long result = 0; //print_loop();#if FUNC...

2020-07-16 21:41:09 2423

原创 数据结构与算法--折半查找(binary search)

折半查找也叫二分查找

2020-07-16 21:35:13 444

原创 数据结构与算法--顺序查找(sequential search)

顺序查找

2020-07-16 21:30:56 567

原创 C语言编程小总结

1.指针变量、BOOL类型和float类型与零值进行比较的if语句指针类型int *p = NULL;if(NULL == p)if(NULL != p)BOOL类型bool test_flag = FALSE;if(test_flag)if(!test_flag)float类型const float EPSINON = 0.00001float x = 0.0;if((x >= -EPSINON) && (x <= EPSINO

2020-07-16 18:36:16 223

原创 数据结构与算法--选择排序(selecttion sort)

草稿

2020-07-14 20:10:36 196

原创 数据结构与算法--冒泡排序(bubble sort)

今天分享一下最简单的排序算法:冒泡排序。冒泡排序是由于它排序的方式而得名的,它是一种稳定的排序算法。编程思路:依次比较相邻两个变量,将变量值大的放在变量值小的后面(升序),直到没有任何两个相邻变量可以交换。冒泡排序代码如下:#include<stdio.h>#define ARRAY_LEN 10void array_print(int *a,int num);int swap(int *x,int *y);void bubble_sort(int *a,int

2020-07-13 14:20:44 237

原创 数据结构与算法--交换(swap)算法

交换是数据结构最基础的算法,在编程的时候我们经常会遇到需要交换两个变量值的情况,一般我们都会想到建立一个中间变量temp来实现交换两个变量的值,下面以C语言为例介绍如何交换两个变量值。1.使用函数来实现对于初学者来说,最简单的做法是直接在主函数里直接定义temp变量,代码如下:#include<stdio.h>int main(void){ int a,b,temp; a = 10; b = 20; printf("a = %d,b = %d

2020-07-13 12:45:18 2264

原创 C语言——动态内存分配

内存分配函数:malloc函数--分配内存块,但是不对其进行初始化。calloc函数--分配内存块,并且对其进行初始化(清0)。realloc函数--调整先前分配的内存块大小。函数原型:void* malloc(unsigned size);void* realloc(void* ptr, unsigned newsize); void* calloc(size_t num...

2019-07-03 16:26:26 217

原创 C语言——程序结构

局部变量局部变量就是在函数体内部声明的变量。int func(void){ int sum = 0; //局部变量 ...... return sum;}局部变量具有以下性质:(1)自动储存期限变量的储存期限(或存储长度)是在该变量存储单元存在期间程序执行的部分。局部变量的存储单元是在包含该变量的函数被调用...

2019-07-02 11:18:58 393

原创 pthon学习笔记一

1.注释python源代码的注释有两种形式:单行注释和多行注释。#单行注释print("Hello,Python!")"""多行注释人生苦短,我用python"""print("I am jevon.")'''多行注释让我们一起学习python'''print("Let's study together.")2.变量变量的命名规则python需要使...

2019-06-22 15:04:45 221

原创 ubuntu安装linuxcnc

1.安装Ubuntu 12.04 (32位)目前不支持64位(AMD64)的ubuntu系统。ubuntu12.04镜像下载链接:http://releases.ubuntu.com/precise/,打开后选择32位的镜像进行下载,如图所示。下载完镜像,接下来就是在虚拟机上安装ubuntu,具体的安装过程就不在这里介绍了。2.更新系统软件,保证同步打开终端,输入下面两条命...

2019-06-21 11:08:52 3963 2

原创 python自动排版的工具----autopep8 安装教程

1.打开命令行程序在键盘上点击快捷键“win + R”,输入cmd,按下“Enter”键。2.安装autopep8在命令行输入:pip install autopep8还以为安装好了,下方出现黄色的提示:You are using pip version 19.0.3, however version 19.1.1 is available.You should ...

2019-06-18 14:21:51 4073 4

原创 python字符串操作

1.常用的字符串函数line = " hello world,I am python. \n\t"line.capitalize() #将第一个字符大写,其他字符均为大写line.center(20) #将字符串居中并打印(字符串长度为20)line.center(20,'%') #不加字符串默认是空格补全,此就是用%替代空格补全...

2019-06-18 10:22:46 478

原创 C语言基础

C语言源程序文件名后缀是 .c经过编译后,生成目标文件,后缀是 .obj经过链接后,生成可执行文件,后缀是 .exe常量1、定义:程序运行中,始终不变的量。2、分类: 1)整数型常量(如:123) 2)实数型常量(如:12.34) 3)字符型常量(分为普通字符和转义字符,如:...

2019-06-18 10:05:34 198

原创 使用log,log10函数时报错

在Linux下,使用gcc编译log,log10函数时报错,代码如下:#include <stdio.h>#include <math.h>int main(void){ double input; double test_para_1 = 20.0855; double test_para_2 = 1000; input =...

2019-06-12 10:03:35 1752

原创 Ubuntu开启远程

更新源列表sudo apt-get update安装sshsudo apt-get install openssh-server查看ssh服务是否启动sudo ps -e |grep ssh有sshd代表ssh服务已启动,如果没有启动,输入sudo service ssh start命令启动ssh服务。查看Ubuntu 16.04的IP地址ifconfi...

2019-06-11 11:29:40 2224

原创 使用移动硬盘出现的问题总结

本文适用操作系统为win10。问题1.移动硬盘插入电脑后拒绝访问 分区格式为ntfs.解决方法:右键点击F盘(不能访问的移动硬盘),点击属性--安全--高级---点击添加,之后跳出弹框,在弹框里点击“选择主体”,在对象名称里面输入everyone---点击确定双击everyone--在下方对话框勾选“完全控制”--点击确定。等待电脑完成相关工作就可以了。...

2019-06-10 15:24:01 2238

原创 使用windows自带的测速工具WinSat对移动硬盘进行测速

(1)查看移动硬盘是哪个盘符(2)以管理员身份运行命令行程序(即cmd)(3)输入winsat disk -drive h命令对H盘进行测速

2019-06-10 14:28:46 20873 2

原创 使用simplicity stduio开发时的注意点

本文是在使用EFM8SB20F32G芯片编程时总结的。开发环境1.关于断点设置 Silicon labs提供的开发环境Simplicity studio IDE在调试时,对于32bit MCU最多可以设6个断点,对于8bit MCU最多可以设4个断点。编写代码注意事项1.关于变量在不同内存存放个数将变量按速度不同,分为3个速度等级。对于速度要求快的,放在data空间...

2019-04-11 13:58:42 1510

原创 source insight3.5的一些设置

1.注释字体设置刚刚安装完source insight3.5,打开项目后发现注释的的字体变得挺难看。如下图所示。这时候要怎么去设置?选中菜单栏里“View”选项,把“draftview”勾选上(或者直接按快捷键:Alt+F12),就可以了恢复正常显示。...

2019-04-10 16:41:57 2262

原创 编写STM32项目遇到的报错

1.Undefined symbol SystemInit(未定义符号SystemInit)新建项目并编译后遇到以下的错误:..\Output\LED.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f429_439xx.o).错误分析:从括号里面的内容可以知道:这个错误在 star...

2019-01-22 10:08:41 2950

原创 usart hmi(串口屏)常用命令

1. 关于页面与页面之间的跳转 page 页面刷新指令 命令格式 :page PID (PID:页面ID或页面名称) 例如:在一个hmi工程里有几个页面A1,A2,A3等,如果想从页面A1切换到页面A2,可以使用在页面A1的弹起事件里写上 page A2 这样,当串...

2019-01-04 09:42:31 10496 3

原创 usart hmi(串口屏)使用小总结

1.刚到手的X5系列的串口屏,下载程序后黑屏   找了挺久的原因,最后发现是其中一张图片太大导致的黑屏。(图片为2M)   解决方法:打开官方例程,生成.tft文件(在串口屏软件生成:文件--输出生产文件),生成的文件如下:                                                                             然后将...

2019-01-04 09:01:44 17349 10

原创 usart hmi(串口屏)介绍

什么是 HMI HMI是Human Machine  Interface 的缩写, “人机接口” ,也叫人机界面。什么是usart hmiusart hmi 就是设备封装好 底层功能以后,通过串口(USART  232)与用户 MCU 进行交互。 MCU 可以随时通过 USART 发指令通知设备:切换某个页面或者改变某个组件的属性。设备也可以随时通过 USART 通知用户 MC...

2018-11-27 22:50:11 15599 3

原创 关于代码的分块管理

代码的分块管理:分多个.c文件,每一个.c文件对应一个功能分开。 在工程文件夹中新建一个文件夹专门放置个人代码 每一个模块一个对应名字的文件夹 在keil5内新建两个文件,保存为同名的.c和.h文件 在对应的工程目录添加刚刚创建的.c文件 添加头文件路径:花棒—  C/C++ --- include path 添加头文件路径   在对应.c文件内编写功能函数,在同名头文件中声明,其...

2018-07-20 13:32:29 699

开发常用的一些辅助工具.zip

开发过程中常用的一些小工具合集,包括几种串口助手,取模软件等

2019-06-20

GNU make中文手册.pdf

本文档比较完整的讲述 GNU make 工具,涵盖 GNU make 的用法、语法。同时重点讨论如何为一个工程编写 Makefile。

2019-06-05

陶晶驰串口屏资料

陶晶驰串口屏资料(内含USART HMI软件+资料+应用实例)

2018-11-27

空空如也

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

TA关注的人

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