自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 单片机死机常见原因分析

在日常的单片机开发中,不可避免会遇上死机的现象,让人摸不着头脑,更严重的是死机并不能轻易复现的情况,下面我就说一些我在开发过程中遇到过的情况。变量溢出或变量未初始化这里的变量溢出指的是变量定义的数据类型,变量溢出肯定会造成程序在运行过程中出现异常,但经我验证,并不一定会造成死机。作为一名合格的C程序员,我们应该把数据定义合适,不会超出,也不会浪费内存空间。程序逻辑有时候看上去的死机...

2020-07-22 11:25:17 6629 6

原创 计算机安装windows7和windows10双操作系统

现在新出的计算机都是装好windows10正版系统,但对于我们这些开发人员往往离不开windows7的系统环境,本博客讲述了笔者在联想ThinkPad E480笔记本电脑上安装win7+win10双系统的过程。经结果表明,笔者安装方法正确,系统运行状况良好。

2019-07-08 00:06:00 1188 1

原创 51单片机型号特点

51单片机的起源51单片机的起源可认为是最早由Intel公司推出的8051处理器。这是一款有小容量程序存储区,通过紫外线擦除,再重复烧写的单片机。随后各公司分别开发出自己的单片机产品,这些产品都是基于8051内核的。51单片机的发展其中一个里程碑就是ATMEL公司的AT89C51单片机,还有增强型的AT89C52单片机。它采用的是FLASH工艺制造的程序存储器,随后又增加了看门狗功能和在线编...

2019-04-03 11:14:29 3398

原创 volatile关键字的解读

我在一次应聘笔试时遇到一道题,问:你是否在项目开发中有用到volatile关键字,如果有那又是什么作用?其实我只是在之前看过书上写这是用于告诉编译器该变量在编译过程中需要进行优化。这感觉上听起来不太清楚明了,我不懂其中道理,什么优化啊?然后我看了书,书里简单说了一下,还能理解,就是一个变量它的值可能会发生变化,若用以写逻辑判断表达式,条件表达式中使用了这个变量,但它执行部分的代码是一样的,然...

2019-03-31 18:11:06 161

原创 C语言函数参数传递讲解

初学者只知道程序由主函数和模块的功能函数组成,在调用函数时把实参的值带入被调用函数的形参中进行计算,但这里有一个陷阱,就是函数参数的传递实际上是一个拷贝值的传递。下面举例说明:void swap( int x, int y ){ int temp; temp = x; x = y; y = temp;}很多人第一时间就想这就是交换两个数的值啊,但这并不是这样子,除非交换的两个值...

2019-03-28 11:52:46 200

原创 奇偶校验

#include<stdio.h>int even_parity( int value, int bits){ int parity = 0; /* //计算值中位为1的个数 */ while( bits > 0 ) { parity += value & 1; value >>= 1; bits -=1; } /* /...

2019-03-28 11:37:48 752

原创 串口协议解读

串口是目前计算机具备的最普遍的通信端口,它的通信实现只需要RXD(发送端)、TXD(接收端)和GND(地)三根线实现,而我们在使用时还会用到RTS(准备传输数据就绪,请求发送),CTS(清除发送请求)。我们都知道在数据的传输中,要经过数据缓冲区,当一台机器的数据缓冲区容量小,缓冲区中的数据未被计算机读取时,这时候就需要发送端停止发送信息,这时候就需要采用RTS、CTS控制信号。RX-232的通...

2019-03-22 16:30:47 1340

原创 输出1到100之间的所有质数

写着类型的函数,每个人有每个人的思路,写出来的代码也相应的不一样,关键是要看你的思维想得够不够全面,也可以借助测试的反馈改进。下面的我写的程序:#include&lt;stdio.h&gt;/***打印1~100之间的所有质数*/void main(void){ int i, j, flag; flag = 0; for( i = 2; i &lt;= 100; i++ ...

2019-03-17 16:09:16 3956

原创 利用数学公式求解一个正整数的平方根

当大家需要在C语言编程中实现求解一个数的平方根的时候,大家最容易想到的方法是加载&lt;math.h&gt;头文件,利用这个函数库中的sqrt()函数来得出结果。那么有没有可能不调用库函数就能计算平方根呢?其实我们可以运用一些数学知识,我们可以将数学的运算哦,我们可以通过编程计算,省去复杂的计算过程。#include&lt;stdio.h&gt;#include&lt;stdlib.h&g...

2019-03-17 15:12:15 1661

原创 如何在不运用循环和乘法运算的前提下计算2的n次幂

解题思想我们知道一个数乘以二等于这个数与自己相加,所以我们就可以用递归算法将这个数一直相加,加到2的0次方(1)。所以接下来就是解决递归函数的书写问题,要实现递归算法,至少需要由递归函数和主函数组成。代码功能实现int digui(int n){ if( n == 0 ) return 1; else return ( digui(n-1) + digui(n-1) );}...

2019-03-17 12:29:33 807

原创 实现DMA从存储器到外设的数据传输

本文讲解的是存储器到USART串口上的传输内容为字符串,设置长度为所发字符串的整数倍,这样就连续在串口发送对应整数次的字符串。DMA编程实现在文章的开头,我先列出实现DMA传输的步骤:这里要注意的一个地方是我们有使能对应外设的DMA请求,在DMA的传输中,我们要时刻检测剩余的数据量,当数据传输完毕后,及时反馈提示信息。在该实验中我们要借助串口调试助手和正点原子的电容触摸屏进行显示。在实现...

2019-03-13 16:39:43 3624

原创 DMA控制原理

DMA功能DMA实现的是数据的传输功能,它的特性在于不占用CPU的资源。正常情况下我们要获取外设的数据,需要利用CPU对外设数据进行读取,在用CPU将数据写进存储器,而DMA就可以实现节约CPU工作的目的。DMA特性在STM32F4和STM32F1之间两者的DMA是有所区别的,F4能实现存储器到存储器的传输,两者的寄存器不太一样。这里主要讲F4的DMA。F4有两个DMA控制器,每个DMA...

2019-03-12 18:10:45 859

原创 在一个未知大小的int型数组中找到数组里面第二大的整数

论如何在一个未知的数组中找到第二大的数,一个简单粗暴的方法就是在找到最大的元素了再在寻找老二的函数中嵌套老二要比老大小的条件。int FindMax(int a[], int b){ int num, i; num = 0; for( i = 0 ; i &amp;lt; b; i++ ) if(a[i] &amp;gt; num) num = a[i]; return num;}上图...

2019-03-12 17:03:24 448

空空如也

空空如也

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

TA关注的人

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