- 博客(139)
- 资源 (30)
- 收藏
- 关注
原创 用一个for循环打印N维数组
/******************************************************用一个for循环打印N维数组一维就不说了二维: for(int i=0;i<x*y;i++) { printf("%d ",a[i/y][i%y]); }三维: for(int i=0;i<x*y*z;i++) ...
2018-04-23 21:42:21
1091
转载 嵌入式程序的下载与调试
注:本例为:正点原子附带例程:实验 0-2 Template 工程模板- 调试章节使用一. STM32 软件仿真MDK 的一个强大的功能就是提供软件仿真,通过软件仿真,我们可以发现很多将要出现的问题,避免了下载到 STM32 里面来查这些错误,这样最大的好处是能很方便的检查程序存在的问题,因为在 MDK 的仿真下面,你可以查看很多硬件相关的寄存器,通过观察这些寄存器,你可以知道代码是不是真正有效。另
2018-04-20 21:57:22
3799
转载 JTAG、JLink、ULINK、ST-LINK仿真器区别
首先要了解一下JTAG。 JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义...
2018-04-20 19:41:46
12868
原创 C++实现词法分析器(学习)
参考网上程序,我把生成的数据存在文件里,能分析C语言的源程序#include<fstream> #include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; string KEYWORD[17]={"if","else","
2018-04-17 11:16:38
3419
转载 网易云音乐 Linux 版无法打开的解决方法.
1.进入以下目录:cd ~/.config/netease-cloud-music/2.创建并打开脚本文件:touch netease-cloud-music.sh | gedit netease-cloud-music.sh3添加以下内容:#!/bin/bashecho [Password] | sudo -S netease-cloud-music4请将[Passw...
2018-04-12 21:00:40
9212
1
原创 UCOS_II对任务就绪表的操作
一.登记 所谓登记就是将处于就绪状态的任务在任务就绪表中置为就绪状态(置1)。 二.注销 所谓注销就是将处于就绪状态的任务在任务就绪表中对应位置0。 三.最高优先级就绪任务的查找 y=OSUnMapTal[OSRdyGrp];//获得优先级D5,D4,D3 x=OSUnMapTal[OSRdyTal[y]];//获得优先级D2,D1,D0 prio=(y&lt;&lt;...
2018-04-11 20:26:34
895
原创 linux常用命令总结笔记
最近在学习这些常用命令,所以每天会更新一点:第一天1: date 显示时间,用法如下图: 2: cal 显示日期,用法如下图: 3: bc 简单的计算器使用,用法如下图: 4: tab 在第一个命令后加是命令补全,第二个后面加是文件补全,用法如下图: 第一个:我在-al递归后面按了两个ctrl 第二我:我在cal后按了一...
2018-04-10 22:20:52
1105
1
转载 UART协议详解
UART简介 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART通信在工作中相当常见,项目中需要生成uart信号,在博客中记录下。uart是异步通信,因为它只有一根线就可以数据的通信。不像SPI,I2C等同步传输信号。所以串口的传输速度和其它协议的速度相比是比较慢的。下面具体讲解一些uart协议以及是如何通信...
2018-04-06 09:13:29
2746
原创 详解链表的创建,插入,删除,遍历
开始前废话几句,前几天做C语言笔记时,写到链表这块,懒得写链表的基本操作了,只浏览了一下概念,拖了好几天,今天打算把它完成,期间遇到了一个困惑,在这里再一次对马博老师表示感谢!//为了方便理解,链表的节点的结构体写简单点:typedef struct DATE{ int num; struct DATE *next;}date;//用date代替typedef str...
2018-03-31 20:54:09
436
原创 解决:invalid application of `sizeof' to incomplete type `char[] '错误
最近做一个DIY玩具,遇到的这个问题: 解决:invalid application of sizeof' to incomplete typechar[] ‘错误//a.c文件#include "a.h" char array[]={0XED,0X34,0X40,0X34};//a.h文件#ifndef _A_H#define _A_H#define size (...
2018-03-28 18:34:22
27451
3
原创 C语言基本概念笔记《七》之文件及操作文件的常用函数
一·文件概述1.文件的操作流程1.1建立/打开文件 1.2读文件/写文件 1.3关闭文件2.文件和内存的交互处理**2.1文件在外存中:(system I/O)//非缓冲文件系统,不提供缓冲区 2.2文件在内存中:(standard I/O)//缓冲文件系统,提供缓冲区二·文件类型指针1.文件类型的指针的结构体(VC6里面的):#ifndef _...
2018-03-26 23:19:03
291
原创 C语言基本概念笔记《六》之位运算及混合编程
一·位运算1.主要有以下六种: ①& 按位与 ②| 按位或 ③^ 按位异或 ④~ 按位取反 ⑤<< 按位左移 ⑥>> 按位右移二·C语言与会变语言混合编程1. 只要在汇编指令前面加上asm就可以了: ①asm AND a1,ofeh ②asm { AND a1,ofeh MOV a2,80h }
2018-03-25 17:09:15
202
原创 C语言基本概念笔记《五》之指针与链表
一·链表的特点1.对存储空间用则申请,不用则释放 2.插入删除只需少量操作 3.大大提高空间,时间的利用率二·链表的结构1.申请空间: 用malloc函数,它包含在stdlib.h文件里。 2.分析结构: 链表简单点说就是把一个一个的节点串起来,申请一个节点空间就串一个节点空间。但是他们的物理地址可能连续可能不连续,但是他们都存储在堆区。 3.节点的数据结构: 上面提到的节点的结构体类
2018-03-25 15:34:49
234
原创 C语言基本概念笔记《四》之指针与函数,结构体,共用体,枚举
一·函数1.函数的返回值类型和return中表达式类型不一致时,以函数的类型为准。 2.函数的参数: ①形参在编译时不分配存储空间,无初值,只有在函数调用时为其临时分配空间,接受实参值,函数调用结束,内存就被释放, ②数组元素作为参数和普通变量一样 ③数组名作为参数,传递的实际上是数组首地址。被调函数可以使用数组的元素值,而且可以改变实参数组元素的值 int fff(int a[...
2018-03-25 09:20:11
729
1
原创 C语言基本概念笔记《三》之指针,数组,动态数组的创建
一·指针1. 地址运算符& :只能取内存中变量的地址。 取值运算符*:一般和指针合用。作用是获取指针所指向的变量的值。 指针也是一个变量:指针变量(对应的,整型变量等),它里面存的是变量的地址 int a; int *p;//定义 p= & a;//把a的地址存到p里。即p指向变量a. 由 *p=5;可使a=5;2.&* 与*&的区别: ...
2018-03-23 08:32:44
906
原创 C语言基本概念笔记《二》之 语句
一·数据的输入输出:1.①格式化输入: scanf(“%d %d”,&a,&b); 输入:2 3 (注意,空格多个或一个都视为一个) scanf(“%d ,%d”,&a,&b); 输入:2 3 或2,3都可以 scanf(“%...
2018-03-21 21:06:01
209
原创 C语言基本概念笔记《一》之标识符与变量的输入输出
有些不常用的概念都模糊了,等到面试时候,面试官提问,自己连最基础的概念都不清楚,所以我觉得对基本概念清楚是扎实基础的第一步。 下面是一些概念(字符集,运算符啥的我就不写了):一·字符,变量,标识符等1. 标识符:由关键字(32个关键字,int if ),预定义标识符 (库函数,预编译命令),用户标识符(自己定义的变量,函数名) 注意:标识符必须由英文字母或者...
2018-03-21 20:20:36
683
原创 字符串逆序输出,((,{,[这几个不变)
小号一个字符串,逆序输出,其中(),[],{},不变:#include<stdio.h>#include<stdlib.h>#include<string.h>char* array(char * src){ char a; int n=strlen(src); int m=n-1; for(int i=n...
2018-03-18 17:11:08
304
转载 宏求结构体的偏移地址
[cpp] view plain copydefine OffSet(type,field) ((size_t)&(((type*)0)->field))在C语言中,ANSI C标准允许值为0的常量被强制转换成任何一种类型的指针,而且转换结果是一个空指针,即NULL指针,因此对0取指针的操作((type*)0)的结果就是一个类型为type*的NULL指针。 但是如果利用这...
2018-03-15 20:25:00
281
原创 关于C预处理的笔记
一·指令功能#define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,编译下面的代码 #ifdef 如果宏已定义,则编译下面代码 #endif 结束一个 #if““#else 条件编译块 #ifndef 如果宏未定义,则编译下面代码 #error 停止编译并显示错误信息 #elif 前面的 #if 的条件为假,则执行下面的代码...
2018-03-14 22:38:25
200
原创 宏定义,定义一个宏比较两个数的大小
#include<stdio.h> #include<math.h> #define charck(a,b) (((a)-(b))==fabs((a)-(b)))?printf("a>b"):printf("a<b")int main(void){ int a,b; scanf("%d %d",&a,&b
2018-03-14 22:35:48
11358
1
原创 struct(结构体)的长度以及字节对齐方式
struct是一种复合数据类型,一般而言struct的sizeof是所有成员对齐后长度相加的长度,下面分析一下:1.//我的电脑是64位#include<stdio.h>struct sum{ short d;};int main(void){ sum s; int summ; summ=sizeof s; prin...
2018-03-12 18:08:50
3824
原创 sizeof与strlen的区别
这俩个我经常会混淆,今天在此总结一下,以后忘记了可以直接复习: 1.首先他两个类型不同,sizeof是关键字,而strlen是函数。 2.sizeof的参数可以是类型,或者函数,而strlen只能用char * 做参数 例如:int g(); sizeof(g()); //sizeof(g())的值等于 sizeof(int) 注意:sizeof后面如果是类型必须加括号,是变量的话可以...
2018-03-12 17:42:48
223
原创 变量与’零值‘的比较
一·一般与零值比较的变量有布尔型(BOOL),指针型(*),int型,float型。下面我们分别来看一下:1.布尔型(BOOL) :一般用来判断一个变量是真还是假,例如:if(var),if(!var)2.指针型(* ) :一般用来判断是否为空,例如 :if(var==NULL),if(var!=NULL)3.int型 : 一般用来判断变...
2018-03-12 17:14:04
341
原创 a++为什么不能作为左值
表达式i++的值是一个临时变量,所以不能给临时变量赋值(因为它们马上就消失了)表达式++i的值是i,不是临时变量下面引用在博客上看到的一个易于理解的回答: 首先说左值和右值的定义: 变量和文字常量都有存储区,并且有相关的类型。区别在于变量是可寻址的(addressable)对于每一个变量都有两个值与其相联: 1).它的数据值,存储在某个内存地址中。有时这个值也被称为对象的右值(r...
2018-03-11 12:12:16
1789
原创 *p++与(*p)++的区别
前缀递增递减和*优先级相同,从右到左;后缀递增递减比前缀优先级高,从左到右。 先看下面这段测试程序;#include<stdio.h>int main(void){ int arr[5]={1,5,10,15,20}; int *p=arr; int a,b,c; a=*p++; printf("%d %d\n",a,*p);...
2018-03-10 22:40:44
18896
1
转载 CVTE 嵌入式软件工程师 面试+笔试
一面:在网上做完了测评之后,当天就收到面试的通知了,CVTE效率真高。第二天就去参加面试,面试前紧张了一把,后来去到之后发现只有几个应聘者,很多面试官前面都没人,估计现在中午一点,所以都去吃饭了。我和一个同学去,直接就面试了。我面的是技术类的岗位。 一面没有问技术,只是问问简历上写的东西。HR有2个人,同时面试我们3个人。以下是HR问的问题:你为什么要应聘这个职位? 你的成绩排...
2018-03-08 22:16:14
6344
1
转载 2016年校园招聘总结
2017年的校园招聘算是告一段落了,怎么说呢,比较满意吧。总共用了两周时间,面试了4家(兆易创新,联发科,瑞晟微电子,地平线机器人),给了两个offer(联发科跟瑞晟微电子),是个疯狂的一周,周一面联发科,面试时直接给的口头offer,周二面瑞晟,周三上午收到瑞晟的offer,下午面地平线机器人,周四上午去联发科收到正式offer。总想写点什么,一是传说中的为师弟师妹们写点面经什么的(其实我也没有...
2018-03-08 22:13:11
1871
转载 2017CVTE嵌入式软件研发岗面经
本人普通高校大三学生,准备在暑假找一份嵌入式实习工作,因为实验室一学长去年通过实习生通道成功拿到正式岗offer(而且CVTE在嵌入式这一行的工资福利等都是相当诱人),所以我的目标就是首先要拿到cvte的实习生offer!我应聘的是cvte的嵌入式软件开发实习岗,废话不说,先上面经:一、在线网测我和另外两个同学在03.24晚上做的嵌入式研发岗题目,今年的题目还可以跟嵌入式有点相关(根据...
2018-03-08 22:05:01
1921
转载 嵌入式面试题
预处理器(Preprocessor)用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接...
2018-03-08 21:35:46
269
转载 华为 嵌入式软件工程师面试题
(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。(2)char * constp char const * p const ...
2018-03-08 21:34:08
6397
转载 cvte面试过程
2017/3/25一面: 面试形式:一个技术官对一个面试者,对坐(个人猜测,应该是项目负责人,不是底层的一线开发人员) 请来一个简短的自我介绍–(上面的自我介绍,但因为一开始稍微有点紧张,没有很流利)–嗯,之前在创业公司里面担任什么工作–嵌入式软件工程师–嗯,那具体做过什么项目呢–两个,“读卡器”和“吊扇”,读卡器是两块stm8芯片,一块主控一块存储秘钥,外接一个fm17520芯片读取非接...
2018-03-08 21:22:37
29938
转载 面试准备
在求职中,我主要投报了软件研发和嵌入式软件研发两个职位,与各位分享一下我的面试准备。面试需要准备一下几个方面:首先,是自我介绍准备一段1分钟之内的自我介绍,包含基本的个人消息,项目信息,获奖信息等。不要太长,简历上有的尽量简练。第二,做过的项目将自己做过的项目整理,准备两个方面:(1) 项目的内容(2) 涉及的关键技术面试时,表达力求清晰。第三,技术基础(1...
2018-03-08 21:12:08
216
转载 面试总结
1, 简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。 首先说说我拿到的offer情况:1) 微软,3面->终面,搞定(+1)2) 百度,3面->终面,口头offer(+1)3) 搜狗,2面,悲剧4) 腾讯,1面,悲剧5) 布丁移动,3面,搞定(+1)6) 涂鸦游戏,3面,搞定(+1)7) 友盟,3面-&g...
2018-03-08 21:11:02
772
原创 const总结
1.const类型也称为常类型,,定义const常量,具有不可变性。 const int i=100; 可以和宏定义一样,不变则以,一变都变。但是和#define不一样的是从汇编角度来看,const只给出对应内存的地址,而#define给出的是立即数。所以const定义的常量在程序运行过程中只有一份复制品,而宏定义的常量有若干个。 举例:#define q=6const int...
2018-03-08 18:16:55
212
原创 C语言变量的存储类型
代码区:存放CPU执行的机器指令,代码区是可共享,并且是只读的。 数据区:存放已初始化的全局变量、静态变量(全局和局部)、常量数据。 BBS区:存放的是未初始化的全局变量和静态变量。 栈区:由编译器自动分配释放,存放函数的参数值、返回值和局部变量,在程序运行过程中实时分配和释放,栈区由操作系统自动管理,无须程序员手动管理。 堆区:堆是由malloc()函数分配的内存块,使用free()函数...
2018-03-07 22:16:05
4068
转载 发现Ubuntu中无法用su命令切换到root用户。
原文地址:Ubuntu: 无法使用su命令作者:王志 发现Ubuntu中无法用su命令切换到root用户。 suPassword:su:AuthenticationfailuresuPassword:su:Authenticationfailure su Password: su: Authentication failure 原来Ubuntu中root用户默认是禁止使用的,需...
2018-02-12 17:56:59
3403
转载 用UltraISO制作Ubuntu16.04 U盘启动盘
用UltraISO制作Ubuntu16.04 U盘启动盘1、 从Ubuntu官网http://cn.ubuntu.com/download/下载系统的iso文件 用来制作的U盘需要是FAT32格式的,可以通过格式化U盘更改 2、从网上下载新版UltraISO软件安装,打开软件后点击下图中红色框内按钮 3、找到Ubuntu ISO文件所在文件夹,选中并点击打开 打
2018-01-29 16:34:44
564
转载 带你彻底理解RSA算法原理
1. 什么是RSARSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加密和解密使用同一种密钥的方式 公钥密码:加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称密码。2. RSA加密RSA的加密过程可以使用一个通式来表达密文=明文 E modN
2018-01-09 21:14:02
1236
原创 《二》STM32时钟使能及应用总结
综述 STM32的新手,一般都会对一个问题很纠结。我也是,就是所谓的”时钟问题“。我们在尽心STM32编程时,会痛苦地发现这样一个事实:不管你要干嘛,你首先要做的一件事就是使能时钟。而且可能每一次的时钟还是不同的。 你就会问:为什么要使能时钟?为什么每次使能的时钟还不一样呢?为什么51单片机中没有这些鬼?在学51单片机的时候,基本上接触不到I/O方
2017-12-16 18:43:51
11965
2
学习嵌入式的几点建议
2018-07-26
ME3616-NB-LOT资料
2018-07-26
基于 STM32的RTX教程
2018-06-06
MG995舵机基于STM32的驱动源代码
2018-01-29
STM32库开发实战指南
2017-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅