- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Visual Studio Code使用教程
Visual Studio Code和soureinsigh都是很好的代码编辑器。那为什么用Visual Studio Code,因为Visual Studio Code能远程连接Ubuntu(ssh),能在windows下编辑与查看Ubuntu的内容。1 下载官网:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器Visual Studio 开发工具和服务让任何开发人员在任何平台和语言的应用开发都更加轻松。 随时随地免费使用代码编辑器或 IDE 进行开发。htt
2022-01-22 10:47:38
31240
转载 CMake教程
本文参考:1、https://blog.youkuaiyun.com/whahu1989/article/details/820785632、https://blog.youkuaiyun.com/kai_zone/article/details/826569641 Cmake安装命令安装:sudo apt install cmake用命令安装,不是最新版本。在终端下输入cmake -version查看cmake版本。官网下载安装:官网地址:Download | CMakehttps://cma
2021-12-26 15:40:59
2340
原创 GDB调试
当程序运行时出现问题时,通过GDB调试可以快速找到问题点,当然不是所有问题都能通过调试找到问题点。在GCC编译程序时,需要加 -g参数,可以通过在-g选项后附加数字1、2或3来指定在代码中加入调试信息的多少。默认的级别是2(-g2),此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。级别3(-g3)包含级别2中的所有调试信息,以及源代码中定义的宏。级别1(-g1)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯跟踪和堆栈转储之用。如下程序:#include <stdi
2021-11-28 15:17:24
7600
原创 json使用教程与实例
json概念及语法此章节参考:JSON教程 - .NET开发菜鸟 - 博客园 (cnblogs.com)json简述JSON指的是JavaScript对象表示法(JavaScript Object Notation)。 JSON是轻量级的文本数据交换格式,比XML更小、更快、更易解析。 JSON独立于语言。 JSON具有自我描述性、更易理解。注意:JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。目前非
2021-11-21 22:43:33
146
转载 设计模式讲解
设计模式分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设计模式六大原则:单一职责原则:避免相同的职责分散到不同的类中、避免一个类承担太多职责;减少类的耦合,提高类的复用性; 接口
2021-10-24 22:07:16
544
原创 网络通信编程
TCP/IP和OSI模型OSI模型共有七层应用层 应用程序:FTP(文件传输)、E-mail、Telnet(网络) 表示层 数据格式定义、数据转换/加密 会话层 传输层 网络层 数据链路层 数据组成可发送、接收的帧 物理层 TCP/IP协议族有四层应用层 ...
2020-02-20 18:01:33
687
原创 shell编程
shell中的特殊字符(一)通配符* 用file_*.txt,匹配file_w.txt、file_l.txt; ? 用file_?.txt,匹配file_1.txt、file_2.txt、file_3.txt;<长度字符> [...] 用file_[orx].txt,匹配file_o.txt、file_r.txt、file_x.txt; [ - ...............
2020-02-16 17:53:12
1613
2
原创 Qt程序打包
当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行。而且别人也需要安装Qt软件,所以将Qt程序打包,就可以直接拷贝应用程序xxx.exe给别人,直接运行。Qt程序打包方法和步骤如下:1、Qt5以上版本都自带了一个打包软件Qt 5.7 forDesktop(Min GW5.3.0 32bit),如下图所示:2、打开Qt 5.7 ...
2019-10-04 17:12:43
833
原创 SQLite数据库
偶尔会使用sqlite数据库,不是经常用,但用的时候,总是想不全命令,所以写下这篇算是笔记吧!以后方便复习和使用sqlite数据库。sqlite可视化相关软件参考地址:https://blog.youkuaiyun.com/qq_27248989/article/details/80279585linux下安装sqlite3在线安装:sudo apt-get install s...
2019-09-01 11:10:24
866
原创 QT之TCP
一、QT中使用TCP/IP网络协议,需要注意以下几点:在.pro文件中添加:QT += network; 头文件:#include <QTcpSocket>、#include <QHostAddress>、#include<QTcpServer>;二、实现简单的网络通信,如下图: 服务器:#ifndef MYSERVER_H#...
2019-06-08 18:36:33
330
原创 Qt笔记录
目录Qt中添加资源文件(图片等)菜单栏和工具栏文件操作(QFileDialog)对话框(QDialog)字体颜色和大小布局时间定时器(QTimer)QLineEditQListwidgetQTableWidgetQCalendarWidget(日历)线程(QThread)QProcess坐标系统Qt自定义界面提升QPush...
2019-04-13 14:51:19
2221
原创 Linux-I/O
标准I/O一、标准I/O概述1.文件指针 FILE指针:每个被使用的文件都在内存中开辟一个区域,用来存放文件的有关信息,这些信息保存在一个结构体类型的变量中,该结构体类型是由系统定义的,取名为FILE。2.标准I/O库的所有操作都是围绕流(stream)来进行的,在标准I/O中流用FILE*来描述;3.流(stream):所有I/O操作仅是简单的从程序移进或者...
2019-04-07 10:09:30
266
原创 Makefile教程
最近刚换工作,项目需要用Makefile,而我只会一点点,看Makefile文件,完全看不懂,所以在网上找了一些资料学习,总结,方便后期复习。一、首先来一个最简单的Makefile,同时编译多个文件:object:main.c test.c gcc -o object main.c test.c注意:在第二行的“gcc”命令之前必须要有一个tab缩进; obj...
2019-03-23 20:43:24
278
1
转载 ubuntu16.04下安装QQ教程
最近换工作,公司完全用的是Linux系统,目前不习惯,感觉别扭;后面熟悉就好了,由于工作需要,要安装QQ;有两个办法:1.在ubuntu下安装virtual box虚拟机,然后再用win系统,再安装QQ;2.在ubuntu下安装winQQ;由于我安装virtual box虚拟机,出现虚拟机打不开的情况,能力问题,暂还未解决,就用了第二种方法;在网上找到安装教程如下:参考网址:ht...
2019-03-16 21:49:07
6631
9
原创 Source Insight使用教程
一.创建工程,添加源程序 1.打开Source Insight4.0,工具栏选择Project -> New Project,将弹出下列框图: 2.点击OK后,会弹出下列框图,填入工程的名称,以及工程文件生成的目录 3.点击OK后,如下图: 其中: ......
2019-01-25 12:13:53
132146
23
原创 用栈实现四则运算计算器
中缀表达式转后缀表达式 规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号和优先级低与栈顶符号(乘除优先加减)则栈顶元素依次出战并输出,并将当前符号进栈,一直到最终输出后缀表达式为止。具体过程如下:(1)从左到右遍历中缀表达式的每个数字和符号(2)若是数字,就直接将其输出到字符数组中。(...
2019-01-06 16:47:23
1270
3
原创 详解IIC原理
IIC总线概述IIC是同步通信的一种特殊形式,具有接口少、控制简单、器件封装形式小、通信速率较高等优点; IIC总线由数据线SDA和时钟线SCL两条线构成通信线路,既可以发送数据,也可以接受数据;在CPU与被控制IC之间、IC与IC之间都可进行双向传送,最高传送速率为400kbps; IIC总线支持多主和主从两种工作方式,通常为主从工作方式;在主从工作方式中,主器件启动数据的发送(发送启动...
2019-01-01 18:08:29
4261
3
原创 PIC单片机
PIC芯片所用编译器是MPLAB X IDE,刚开始接触PIC单片机,也是一脸茫然,然后查阅资料逐渐了解、运用编译器,这里我就不说编译器怎么使用了,下面我将以PIC12LF1822芯片为例,简单来说说我见解,分别说说时钟、串口、定时器、ADC、触摸按键。一、时钟 时钟一般有内部时钟(系统时钟)、外部时钟。单片机时钟可选择系统时钟、外部时钟。时钟相当于单片机的心脏,每跳...
2018-12-08 17:36:50
1166
原创 单片机中的串口通信解析
写单片机程序大多芯片都会用到串口进行抓取信息、调试代码。那如何编写串口代码呢,各种芯片串口都大同小异,一般会用到寄存器的串口中断使能位、设置波特率位、接受中断标志位、发送中断标志位、缓存寄存器(用于发送/接受)。我在最开始写串口代码一直认为接受中断标志位、发送中断标志位是当给缓存寄存器取数据/放数据时,会将接受/发送中断标志位自动置位,并进入中断函数。或许很多朋友都和我一样开始都这样...
2018-11-26 21:56:26
2236
翻译 浅谈MDK环境下使用stdio.h的问题
在使用MDK进行嵌入式开发,特别是调试串口的时候经常要用到C语言的标准输入输出库函数,如printf();。这样写出来的程序,通常编译和链接过程都不会报错,但是程序却无法正常运行.原因分析如下:标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数. 例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如...
2018-08-29 14:17:28
8138
1
原创 判断数据的现象(递增、减小、稳定、无序)
在嵌入式行业很多数据需要知道是增大、减小、稳定还是无序,下面程序就是数据现象:/***********2:稳定、1:递增、0:无序、-1:递减*******/#include<stdio.h>#define LIGHT_DATA_COUNT_MAX 7typedef enum{ LIGHT_DATA_DECREASE=-1, LIGHT_DATA_DISORDER=...
2018-07-31 15:01:31
6603
原创 延时函数
void delayus(uint16_t time){ uint16_t i; uint16_t j; for(j=time;j>0;j--) for(i=2;i>0;i--);}void delayms(uint16_t time){ uint16_t j; for(j=time;j>0;j--) delayus(1000);}void del...
2018-07-31 14:12:58
684
原创 如何在keill中添加没有的芯片型号
1.打开keill按下图操作或直接打开浏览器输入网址: http://www.keil.com/dd2/pack/ 图1 ...
2018-07-02 22:20:50
10354
3
原创 Linux时间相关
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<math.h>#include<sys/types.h>#include<time.h>int main (){ int i=0
2018-06-30 16:58:54
855
原创 一个字符串在另一个字符串中有多少个
#include<stdio.h>#include<stdlib.h>int findstr(char *a,char *b);int main (void){ char a[10],b[100]; int num; gets(a); gets(b); if(strlen(a)>strlen(b)) { printf("len...
2018-06-30 16:50:06
838
原创 将数组里的内容移动
int main (void){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; int n; scanf("%d",&n); int i,j,temp; for(i=0;i<n;i++) { temp = a[9]; for(j=8;j>=0;j--) ...
2018-06-30 16:37:47
428
原创 约瑟夫环游戏
规则:n个人围成一个圆圈,由第1个人开始报数,每报数到3的人就淘汰,然由再由下一个人重新开始报数,最后剩第几号人。#include<stdio.h>int main(){ int i,j,r,n,k=0; printf("输入参加约瑟夫环游戏的人数:"); scanf("%d",&n); int a[n]; i = 0; ...
2018-06-30 15:16:34
487
原创 简单递归用法
1.求一个数num的阶层,num!。 #include<stdio.h>int main(){ int n,sum; scanf("%d",&n); sum = fun(n); printf("sum = %d\n",sum);}int fun(int n){ int r; if( n == 0) { ...
2018-06-30 14:52:25
374
原创 将数组的内容倒置
#include<stdio.h>#include<string.h>int main(){ char a[10] = {0}; int i,j,len; gets(a); puts(a); len =strlen(a); printf("len=%d\n",len); for(i=0;i<len/2...
2018-06-30 14:41:49
1352
原创 十进制转二进制
十进制转二进制的方法很多下面是最常用也是最简单的程序:方法一:通过移位的方法。 #include<stdio.h>typedef int bool;#define true 1#define false 0int main(){ int n,m; scanf("%d",&n); bool flag; int i = 3...
2018-06-30 14:34:27
334
翻译 keill5中用JLINK下载与调试程序
本教程以下载与调试STM32芯片为例,简单说下在MDK平台上用JLINK下载与调试时配置的步骤 JLINK V9 可支持JTAG和SWD两种调试模式,同时STM32也支持JTAG 和SWD。所以,我们有2种方式可以用来调试,当用JTAG调试的时候,占用的IO线比较多,而SWD 调试的时候占用的IO 线只需要两根即可。 1、连线:在硬件上,把JLINK用USB线连接到...
2018-06-30 12:24:08
27925
5
原创 C中删除字符和字符串
/****删除字符****/#include<stdio.h>int main (void){ char a[100]; gets(a); char ch; scanf("%c",&ch); int i = 0,j = 0; while(a[i]) { if( a[i] == ch) ...
2018-06-28 23:04:54
288
原创 C中插入字符和字符串
/***插入字符串*****/#include<stdio.h>int main(){ char a[100]; gets(a); char ch; int n; scanf("%d %c",&n,&ch); int i,j; j=strlen(a); for( i=j;i>=n;i--) ...
2018-05-23 16:13:02
5699
原创 C中排序与查找
编程中的排序方法:冒泡、选择、插入、快速排序、哈希、shell等一、冒泡排序/*********************冒泡排序********************/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include&l...
2018-05-23 11:46:21
192
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人