自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (21)
  • 收藏
  • 关注

原创 STM32 ADS8365 高精度 ADC 采集方案

硬件原理图(实际上可以6路输入,这里4路)数据手册中关键点数据手册在这里下载https://www.alldatasheetcn.com/ADS8365.c/****************************************----------------------------- * | PB.12: (ADS8365_nEOC) PA9 ...

2020-04-26 23:31:44 2616 4

原创 STM32 LCD12864 原理和实现代码

硬件原理图LCD12864.c你主要看每个功能函数是如何实现的/**************************************** * 按照自己的硬件电路图来设置 * -------------------------- * | PB.09: (LCD_BLK) | * | PC.06: (LCD_RST) ...

2020-04-26 14:09:47 1443 3

原创 STM32之GPIO的CRL、CRH、IDR、ODR、BSRR、BRR、LCKR寄存器

STM32中控制GPIO状态的一共有7个寄存器,分别是CRL、CRH、IDR、ODR、BSRR、BRR、LCKR。调用即可看到选项

2020-04-25 22:32:16 7681

转载 STM32 GPIO 配置之ODR, BSRR, BRR 详解

用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态.ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。管脚对于位写1 gpio 管脚为高电平,写 0 为低电平BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平。对寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管...

2020-04-25 22:15:39 2682

原创 STM32的GPIO八种工作模式

typedef enum { GPIO_Mode_AIN // 模拟输入 GPIO_Mode_IN_FLOATING // 浮空输入 GPIO_Mode_IPD // 下拉输入 GPIO_Mode_IPU // 上拉输入 GPIO_Mode_Out_OD // 开漏输出 GPIO_Mode_Out_PP // 推挽输出 GPIO_Mode_AF_OD // 复用开漏...

2020-04-25 20:39:59 887

原创 CODEIF_变量取名

网址https://unbug.github.io/codelf/大部分开发者都或多或少遇到过变量命名的烦恼,如果命名不规范,不仅会影响开发的效率,而且对后面维护的同学来说也是一个不小的挑战,因为他要去揣摩你这个变量的含义。“计算机科学里两件最难的事:缓存失效和命名。” Codelf通过搜索在线开源平台Github, Bitbucket, Google Code, Codeplex, Sou...

2020-04-22 15:26:36 32296

原创 约瑟夫问题、约瑟夫环

约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.)问题来历据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数...

2020-04-21 17:13:55 305

原创 PID控制的原理以及C代码实现

数字式 PID 控制算法可以分为位置式 PID 和增量式 PID 控制算法(常用)位置式 PID 算法:由于计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量,而不能像模拟控制那样连续输出控制量量,进行连续控制。增量式 PID 算法:所谓增量式 PID 是指数字控制器的输出只是控制量的增量 ∆uk 。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式 PID 控制...

2020-04-21 13:04:21 1157 1

原创 写中断程序要注意哪些方面

与每类I/O设备相关的进程都有一个靠近内存底部的地址,称作中断向量。 它包括中断服务程序的入口地址。当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请...

2020-04-21 10:13:34 4239

原创 Linux内核源码框架(图)

Linux2.6内核代码层次结构

2020-04-19 22:14:33 444

原创 精选嵌入式软件开发面试笔试题

/************************Chapter1 语法类***********************/1 .volatile作用?应用场合举3例volatile修饰的变量表示这个变量可能会被意想不到的改变,对该变量的操作将不作优化,用到该变量时都从这个变量的原始地址读取,而不是用保存在寄存器里的备份。Volatile常用在:1). 硬件寄存器(如:状态寄存器)。...

2020-04-17 16:47:27 737

原创 UART、USART、IIC、SPI

UART与USART都是单片机上的串口通信,他们之间的区别如下:首先从名字上看:UART:universal asynchronous receiver and transmitter通用异步收/发器[Bus Signal] TX , RXUSART:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发...

2020-04-15 11:27:25 907 1

原创 keil5_STM32框架图

常用实际上另一种

2020-04-15 10:28:32 955

原创 C++中setw()函数

setw(n)给后面的值赋予n个位置。setw(n)如果n是大于你后面紧跟的那个的字符串个数的时候,就在前面补空格。如果n是小于那个字符个数,就按照默认的输出。主要作用是设置对齐方式举例#include <iostream>using namespace std; #include <iomanip>using std::setw; int main (...

2020-04-14 16:11:49 562

原创 C++中的局部变量和全局变量细微之处

1、在程序中,局部变量和全局变量的名称可以相同,但是在函数内,局部变量的值会覆盖全局变量的值。2、当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动初始化为下列值:...

2020-04-11 20:38:37 234

原创 C/C++中函数声明

必须先声明再使用这样是合法的:void f(){ //程序 } int main(){ f();}void f();int main(){ f();}void f(){ }这样就是非法的int main(){ f();}void f(){ }"函数定义...

2020-04-11 14:05:04 1576

原创 C++中cout后面输出时加endl和不加endl的区别

endl就是end line的意思,也就是“结束此行”,实际上有两个操作1 换行2 对缓冲流进行冲刷,使得流中所有剩余字符被写入输出序列。其实作用说白了就是加<<endl后会有一个换行。下次再用cout输出字符时就会在下一行开始输出,如果不加,就会跟在当前行的最后输出。...

2020-04-10 23:32:30 4903

原创 用C语言实现大小端的判断

联合体方法#include<stdio.h>int main(){ union w { int a; char b; }c; c.a = 1; if(c.b == 1) printf("小端存储\n"); else printf("大端存储\n"); return 0; }结果指针方法#include <...

2020-04-10 18:35:50 257 1

原创 C语言_多个文件共用一个变量_关键字extern的应用

main.c//第一个文件main.c#include <stdio.h>extern int a; //全局变量声明 int main(){ printf("%d\n",a+1);}two.c//另一个文件sub.cint a=3; //变量定义

2020-04-10 13:54:09 562

原创 C语言的关键字

c的关键字共32个数据类型关键字(12)char,short,int,long,float,double,unsigned,signed,union,enum,void,struct控制语句关键字(12)if,else,switch,case,default,for,do,while,break,continue,goto,return存储类关键字(5)auto,extern,regi...

2020-04-08 15:42:27 133

转载 死锁是什么,死锁的原因有哪些?死锁的四个必要条件是什么?如何解开死锁?

死锁: 指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。死锁的原因有两个:a. 竞争资源系统中的资源可以分为两类:(1)可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,CPU和主存均属于可剥夺性资源;(2)不可剥夺资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如...

2020-04-08 15:34:47 576

原创 volatile关键字

一个是防止变量在其它地方被改变,而cash里没有改变,所以要求每次都要读取内存。一个是防止编译器优化,编译器感觉你这个变量不会有变化,但是实际在其它线程或硬件会改变它,所以要每次从内存读,你编译器就不要优化。volatile大体两个作用:1防止编译器优化,编译器判断你的变量在某一段内没有变化。2.你别的地方,如中断,其它线程,并行的硬件把变量改了,比如从0加到1,但是我不知道,我读出来的还...

2020-04-08 15:28:53 150

原创 static关键字

在C语言中,static有下3个作用:函数体内的static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,以为其值在下次调用时仍维持上次的值(该变量存放在静态变量区);在模块内static全局变量可以被模块内所有函数访问,但不能被模块外其他函数访问。(注意,只有在定义了变量后才能使用。如果变量定义在使用之后,要用extern 声明。所以,一般全部变量都会在文件的最开始...

2020-04-08 15:25:27 191

原创 memcpy()函数

定义void * memcpy ( void * destination, const void * source, size_t num );将source指向的地址处的 num 个字节 拷贝到 destination 指向的地址处。注意,是字节。题目int main() { int a[10] = { 0,1,2,3,4,5,6,7,8,9 }; memcpy(a + 3, a,...

2020-04-08 15:20:38 2476

原创 整数自动转换原则

void foo(void){ unsigned int a = 6; int b = -20; (a+b > 6) ? puts("> 6") : puts("<= 6");}这无符号整型问题的答案是输出是 “>6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表...

2020-04-08 13:09:23 293

原创 printf()重入和性能上的问题

这个概念在嵌入式操作系统中比较重要,由于存在任务的调度,它实时系统,可剥夺型内核中是危险的,如同一个安静的水雷。可能会被触发,也可能安然无恙。由于它运行结果的不可预期性,会使系统带来隐患。printf()经常有重入解释:不可重入函数不可以在它还没有返回就再次被调用。例如printf,malloc,free等都是不可重入函数。因为中断可能在任何时候发生,例如在printf执行过程中,因此不能在中...

2020-04-08 13:07:22 652

原创 strcat、strcpy、strcmp、strlwr、strupr的C语言实现以及简单用法

strcat 字符串的嫁接(连接)#include "stdio.h" char *strcat(char *str1, char *str2){ if((str1==NULL)||(str2==NULL)) throw "Invalide arguments!"; char *pt = str1; while(*str1!='\0') str1++; while(*str2!='...

2020-04-07 18:53:15 824

转载 C++中结构体与类的区别(struct与class的区别)

C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!!既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制:默认的继承访问权限struct是public的,class是priva...

2020-04-07 18:14:34 310

原创 Linux平台中调试C/C++内存泄漏方法

https://www.eet-china.com/mp/a9600.html

2020-04-07 17:21:36 252

原创 #define宏的边际效应

在C语言和C++中,#define宏进行的字符替换中,要注意边际效应:#define N 2+3我们预想的N值是5,我们这样使用N,int a = N/2; //我们预想的a的值是2.5,可实际上a的值是3.5原因在于在预处理阶段,编译器将 a = N/2处理成了 a = 2+3/2;这就是宏定义的字符串替换的“边缘效应”因此要如下定义:#define N (2+3)边际效应要用括号去完善...

2020-04-06 10:19:13 913

原创 C++中public、protected及private用法

1.类的一个特征就是封装,public和private作用就是实现这一目的。所以:用户代码(类外)可以访问public成员而不能访问private成员;private成员只能由类成员(类内)和友元访问。2.类的另一个特征就是继承,protected的作用就是实现这一目的。所以:protected成员可以被派生类对象访问,不能被用户代码(类外)访问。三种访问权限public:可以被任意实体...

2020-04-06 09:59:27 444

原创 迷途指针

编程中一种很难发现的错误是迷途指针。迷途指针也叫悬浮指针、失控指针,是当对一个指针进行delete操作后——这样会释放它所指向的内存——并没有把它设置为空时产生的。而后,如果你没有重新赋值就试图再次使用该指针,引起的结果是不可预料的。如果程序崩溃算都算走运了。这就如同一家水果公司搬家了,但你使用的仍然是它原来的电话号码。这可能不会导致什么严重的后果——也许这个电话号码是放在一个无人居住的房子...

2020-04-05 09:50:59 212

原创 函数指针和指针函数

指针函数定义指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式为:*类型标识符 函数名(参数表)看看下面这个函数声明:int fun(int x,int y);这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,是一个数值。接着看下面这个函数声明:int *fun(int x,int y);这和上面那个函数...

2020-04-03 20:50:21 133

原创 写一个宏定义不用大于号小于号和if,判断正整数a,b的大小

写一个宏定义,不用<,>号和?号,判断正整数a,b的大小解答三元运算符define max(a,b) (((long)(a-b)) & 0x80000000)?b:a0x80000000 的二进制是:1000 0000 0000 0000 0000 0000 0000 0000(第一位是符号位,所以此数是负数)如果a-b是正数,那根据二进制数的表示, 分为符...

2020-04-03 20:24:28 1433 3

Linux 应用编程开发资料(500页).zip

Linux 应用编程开发资料(500页).zip

2022-12-30

嵌入式软件笔试面试题目大汇总_20210527.pdf

嵌入式软件笔试面试题目大汇总_20210527.pdf

2021-05-27

OV12870-Product-Specification-COB_Version-2-0_CEAC.PDF

ov12870数据手册,芯片手册。sensor参数。ov12870数据手册,芯片手册。sensor参数。ov12870数据手册,芯片手册。sensor参数

2020-09-13

P24C64E appilcation note V1.1.pdf

P24C64E的EEPROM flash需要注意的地方,开发补充事项。P24C64E的EEPROM flash需要注意的地方,开发补充事项。

2020-06-29

P24C64E_DataSheet_Rev.1.2_EN_客户.PDF

一种EEPROM flash,型号P24C64E,芯片手册(数据手册),重点需要注意的地方已经做好标记。是64K内存的EEPROM,是普亚半导体公司生产的,对应的有P24C64C等

2020-06-29

Hi3559V200 4K Mobile Camera SoC 用户指南1.pdf

海思HI3559V200芯片硬件工程师设计指南,海思HI3559V200芯片硬件工程师设计指南,海思HI3559V200芯片硬件工程师设计指南

2020-06-28

Source Inight配置文件.zip

Source Inight配置文件,3.5和4.0两个版本,好用护眼,不用每一次安装都要设置,直接在工程目录下的setting下面替换即可。

2020-06-08

第0讲 文献获取与管理2018.pdf

包含写论文必备的基础知识点,文献管理工具下载,matlab下载链接,代码编辑器下载链接,完全整理。。。。。。

2019-11-28

DSP数字信号处理实验箱(TMS320F2812资料)(LED、LCD、ADC、UART实验程序OK).rar

DSP数字信号处理实验箱(TMS320F2812资料),包含LED、LCD、ADC、UART等实验程序,完整可用。(CCS软件)

2019-10-17

5-物联网工程本科培养方案(2017版 )20171030.doc

计算机学院,物联网专业,本科培养方案,包含课程体系。

2019-10-14

4-网络工程本科培养方案(2017版)20171030.doc

计算机学院,网络工程专业,本科培养方案,包含课程体系。

2019-10-14

1-计算机科学与技术本科培养方案(2017版)20171127.doc

计算机学院,计算机科学与技术专业,本科培养方案,包含课程体系。

2019-10-14

Understand 5.0.960 translations&注册机.rar

这是understand的破解工具。静态代码分析工具,比source insight软件还强大的代码静态分析工具,堪称神器–Understand

2019-09-11

Understand-5.0.960-Windows-64bit.exe

静态代码分析工具,比source insight软件还强大的代码静态分析工具,堪称神器–Understand。这款软件具有强大的代码静态分析功能,并且可以绘制各种流程图.

2019-09-11

DT-06资料.zip

DT-06WiFi模块,内含驱动,原理知识,调试工具,硬件开发手册和使用手册。

2019-09-09

CPU-Z.rar是一款很好用的工具

CPU-Z可以扫描电脑硬件,给出具体的参数,包括CPU、显卡和多级缓存,还有支持的指令集,是一款很好用的工具。

2019-08-08

SCITranslate10Basic.rar

此工具可以全文翻译英文文档,包括SCI论文,对专业名词识别率很高,亲测过电气类专业论文,翻译准确!

2019-07-19

岗位说明书-190124最新版(2).xlsx

这个excel里面有各个岗位的岗位说明书,2019最新版,包含java、c++、需求分析师、运维工程师、测试工程师、前端开发、UI设计、脚本开发工程师的岗位描述(JD)

2019-07-18

STM32最小系统.SchDoc

这个资源是STM32F103VET6的最小系统,我们已经用了很多个项目,亲测没问题,预留了三个串行口。

2019-07-18

pid代码.rar

在STM32F103VET6上用的PID代码,亲测可用,其实一般只用PI环节就可以,亲测可用。

2019-07-17

WIFI模块与串口通信

WIFI与串口之间的通信,WiFi模块.WIFI与串口之间的通信,WiFi模块.

2018-09-09

空空如也

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

TA关注的人

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