自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魏波-CSDN认证博客专家

魏波-CSDN认证博客专家,全国总排名306,文章总访问量超500万。个人邮箱1095528269@qq.com

  • 博客(67)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

原创 用Arduino检测环境中的温湿度

用Arduino检测环境中的温湿度使用的温湿度传感器是 SHT1X 温湿度传感器。其技术规格如下:全部校准,数字输出;接口简单(2-wire),响应速度快;超低功耗,自动休眠;出色的长期稳定性;超小体积(表面贴装);湿度范围 0—100%RH,温度范围-40℃—128.8℃测湿精度±4.5%RH,测温精度±0.5℃(25℃)模块尺寸:32X17mm传感器采用 2-wire 接口,数字输出,所以需要...

2018-04-22 21:06:38 2945 1

原创 Arduino 控制舵机

Arduino 控制舵机#include <Servo.h>Arduino自带的Servo函数及其语句,先来介绍一下舵机函数的几个常用语句吧。1、attach(接口)——设定舵机的接口,只有9或10接口可利用。2、write(角度)——用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。3、read()——用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。...

2018-04-22 19:20:30 1960

翻译 用树莓派获取天气状况

用树莓派获取天气状况在树莓派上我们可以通过”wether”工具来以命令行的方式获取天气预报信息。首先当然是安装Weather工具,通过命令行 sudo apt-get install weather-util安装结束后便可以通过不通的方式获取天气预报了。最简单的获取天气状况的方法是使用ICAO代码(International Civil Aviation Organization Airport ...

2018-04-11 15:21:55 2616

翻译 用宏定义代替printf函数

问题提出有时候我们想用宏定义来决定是编译debug版本的代码还是release的代码,dubug版本的代码会通过printf打印调试信息,release版本的代码则不会。我们总不能对每一条printf都这样写:#if _DEBUG_printf("hello world!");#endif这样子实在是太麻烦了!万一要各个地方都要打印,会使版面看起来很乱。解决方法我后来想到一个方法,可以使用宏定...

2018-04-29 12:23:09 517

翻译 STM32中stm32f0xx_flash.icf文件的作用详解!

每个芯片开发商都会针对每款芯片来编写一个.icf文件就是传说中的链接文件。对于基本的应用,这个.icf文件足以满足你的工程需要。但有时也会需要改动,比如当你的项目要添加外部RAM时就要修改一下icf。1、Icf到底干了啥呢?定义了芯片存储空间的大小。 定义ROM的大小和起始、结束地址。 定义RAM的大小和起始、结束地址。当然这些都是最基本的,你也可以设置以下的东西来匹配你的具体...

2018-04-29 12:02:26 3073 1

原创 设计printf调试宏

设计printf调试宏:在调试时打印调试信息,而产品代码不显示调试信息。#define _DEBUG_ 0#if _DEBUG_#define ACCLOG(...) printf(__VA_ARGS__)#else#define ACCLOG(...)#endif在代码中可以如下使用以上的定义:ACCLOG("test car...\n");ACCLOG("find ...

2018-04-29 09:11:42 133

翻译 STM32的SPI驱动代码

https://wenku.baidu.com/view/4758081b10a6f524ccbf85b0.html

2018-04-27 15:41:57 1982

翻译 MF_RC522_射频识别参考程序注释(2018年4月27号)

MF_RC522_射频识别参考程序注释(2018年4月27号)https://wenku.baidu.com/view/478e6bb17f1922791688e8f8.html

2018-04-27 15:26:03 832

原创 IAR工程下.eww、.ewp、.ewd、.map、.hex、.bin、.browse、.ewt、.o文件的作用!

IAR工程下.eww、.ewp、.ewd、.map、.hex、.bin、.browse、.ewt、.o文件的作用!1.eww:工作空间文件(不可删除)这个文件是多个工程的索引文件,也是我们打开IAR工程的文件。2.ewp:工程文件(不可删除)新建工程之后产生的文件,在同一个工作空间下建立多个工程,就会有多个ewp文件。3.ewd:工程调试器配置文件(不可删除)他配合IAR系统编译和汇编使用,完成集...

2018-04-27 14:15:44 2221

翻译 C++11 的新特性

C++11 的新特性1 变量和基本类型1.1 long long 类型扩展精度浮点数,10位有效数字1.2 列表初始化初始化的几种不同形式,其中用花括号来初始化变量称为列表初始化;比如:int i = 0;int i = {0};int i{0};int i(0);需要注意的是,当用于内置类型的变量时,这种初始化形式有一个重要的特点:如果我们使用初始化且初始值存在丢失信息的风险,则编译器报...

2018-04-27 10:04:03 135

原创 IAR调试按钮功能说明及调试主要看哪些内容

参考文档:http://www.docin.com/p-1983183635.htmlIAR调试按钮功能说明先来看常用的快捷键:全速运行:F5单步运行:F10加断点/取消断点:Ctrl+F9退出调试:Ctrl+Shift+D注释多行:Ctrl+K(单行也是这个)取消注释:Ctrl+Shfit+K、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、用来显示所有断点V...

2018-04-27 09:10:56 11694

原创 IAR 中 Compile、Make和Build的区别

IAR 中 Compile、Make和Build的区别make (常用)编译,连接当前工程。(编译只编译有改动文件,或者设置变动的文件,工程窗口文件右边会有个*号) compile 只编译当前源文件。 (不管文件是否改动,或者设置是否变动) rebuild all 编译,连接当前工程。 (不管文件是否改动,或者设置是否变动)...

2018-04-26 17:51:07 1536

原创 C语言atoi()函数用法

C语言atoi()函数用法头文件:#include <stdlib.h>atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str);【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或...

2018-04-26 11:08:44 4623

原创 各种ARM仿真器接口图

ULINK2 JTAG/SWD接口ULINK2接口是如何定义的?下面为ULINK2接口定义:仿真器端口连接目标板备注  1. VCC  MCU电源VCCVCC  2. VCC  MCU电源VCCVCC  3. TRST  TRSTTest ReSeT/ pin  4. GND  GND或悬空  5. TDI  TDITest Data In pin  6. GND  GND或悬空  7. TMS,...

2018-04-26 11:00:22 7301

原创 IAR建立stm32工程

版本1:stm32是一个当下非常流行的微控制器,很多人都加入了学习stm32的行列中,常用的stm32编译器有IAR和mdk两种,接下来是利用stm32固件库3.5在IAR下的建立的工程模板历程:  1、在常用的文件夹下新建立一个文件夹,根据个人喜好,分别建立如下几个文件夹,用于分别存放固件库中的文件和用户自己的文件  2、将固件库E:\STM32\stm32固件库3.5\STM32F10x_St...

2018-04-26 09:13:35 682

原创 STM32的调试方式、更新程序、仿真以及补救措施

STM32的调试方式、更新程序、仿真以及补救措施1. STM32的调试方式选择STM32支持JTAG和SWD两种调试方式,且默认状态下这两种调试功能都是开启的。由此我们可以知道:如果要使用JTAG调试功能,那么PB3,PB4,PA13,PA14,PA15都不能使用;而如果我们关闭JTAG功能,但是开启SWD调试功能,那么PB3,PB4,PA15都可以当作普通IO来使用了;ST官方3.5的库有提供关...

2018-04-23 20:59:57 3934

翻译 Arduino编程之Serial.println()和Serial.print()

Arduino编程之Serial.println()和Serial.print()Arduino 的输出基本就用两个函数 print 和 println,区别在于后者比前者多了回车换行Serial.println(data)从串行端口输出数据,跟随一个回车(ASCII 13, 或 'r')和一个换行符(ASCII 10, 或 'n')。这个函数所取得的值与 Serial.print()一样。Ser...

2018-04-22 19:59:51 68422 4

原创 Arduino常用函数总结

Arduino常用函数总结https://wenku.baidu.com/view/6fc3460b27d3240c8547ef20.html1//数字 IO 口辒入辒出模式定义凼数 pinMode(pin, mode)2//设置数字 IO 口输出电平定义凼数 digitalWrite(pin, value)3//获取 IO 口输出电压凼数digitalRead(pin, value)4//获得引...

2018-04-22 17:01:45 15368

翻译 C++ 关键字——friend

1.友元是指:采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分(注意友元函数不是类的一部分),但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检...

2018-04-22 09:54:19 112

翻译 PID控制原理

PI,PD,PID系统的适用范围不同的控制策略适用于不同的控制系统,对于PID策略,用户也可仅使用其中一部分功能或所有参数来控制不同的系统,例如可以使用PD调节器来调节大滞后环节。a)P调节器快速响应无法消除静差b)PI调节器兼顾快速性减小或消除静差(I调节器无调节静差)c)PD调节器调节偏差快速变化时使调解量在最短的时间内得到强化调节有调节静差适用于大滞后环节d)PID调节器兼顾PD调节器快速性...

2018-04-22 09:54:03 638

翻译 #if, #elif, #else, #endif 使用

有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,就没必要把所有的代码都写进去,就可以用条件编译,通过预编译指令设置编译条件,在不同的需要时编译不同的代码。(一)条件编译方法 条件编译是通过预编译指令来实现的,主要方法有:1、#if, #elif, ...

2018-04-22 09:53:03 3057

翻译 关于Zigbee的常识

什么叫物联网?物联网是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。英文名为Internet of things(IOT)。什么叫无线传感网络?无线传感网络是大规模,无线、自组织、多跳、无分区、无基础设施支持的网络.其中的节点是同构的、成本较低、体...

2018-04-21 21:43:50 1734

原创 NanoPi NEO的Matrix库硬件编程

NanoPi NEO的Matrix库硬件编程1、准备工作(1)安装Matrix函数库,类似于树莓派的wiringPi函数库,用来对Nano Pi的硬件进行操作;先安装git;$ sudo apt-get install git安装好后看一下版本:$ git --version然后去github上拿到官方的库:$ git clone https://github.com/friendlyarm/ma...

2018-04-21 21:32:58 918

原创 SIM卡初始化

//SIM卡初始化int card_init(int fd){ int nread,nwrite; char numberf[MAX_MESSAGE_LEN]; char reply[MAX_MESSAGE_LEN]; memset(numberf,0,sizeof(numberf)); //初始化 memset(reply,0,sizeof(reply)); strcpy(nu...

2018-04-21 21:04:51 1192

原创 Tinyhttp源码详解(带注释)

/* J. David's webserver *//* This is a simple webserver. * Created November 1999 by J. David Blackstone. * CSE 4344 (Network concepts), Prof. Zeigler * University of Texas at Arlington *//* This...

2018-04-21 20:36:54 466

翻译 c++顺序容器vector用法

顺序容器概述一个容器就是一些特定类型的集合。顺序容器为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖元素的值,而是与元素加入容器时的位置相对应。所有的顺序容器都提供了快速访问元素的能力。顺序容器类型有几种:vector、deque、list、forward_list、array、string。在C++vector容器应该是最常用的,使用vector是最好的选择,下面我们就来讲讲他的一些用...

2018-04-21 20:27:44 283

原创 fin.is_open()与fin.open()有什么区别?

fin.is_open()与fin.open()有什么区别?fin.open()打开fin.is_open()打开成功返回1,失败0

2018-04-21 19:57:23 7053

翻译 ofstream和ifstream详细用法

ofstream和ifstream详细用法在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<)  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字符...

2018-04-21 19:53:34 123

翻译 CC2530中常用的控制寄存器

CC2530中常用的控制寄存器https://wenku.baidu.com/view/e14376dc5fbfc77da269b1cc

2018-04-21 17:48:32 782

原创 CC2530的串口实验

CC2530的串口实验主要有编程主要有一下几个步骤:一、串口初始化函数(设置时钟频率-->选择用来当做串口的IO-->设置波特率-->发送中断设为0)二、字符串发送函数(U0DBUF填充字符-->等待串口发送完毕-->发送中断标志设为0,准备下次发送代码1:/*******************************************************...

2018-04-21 12:22:02 843

原创 IAR中断定义#pragma vector = P0INT_VECTOR __interrupt void P0_ISR(void)啥意思?

在CC2530芯片中用到IAR中断定义:#pragma vector = P0INT_VECTOR__interrupt void P0_ISR(void)在 IAR 编译器里用关键字来t __interrupt 来定义一个中断函数。用#pragma vector来提供中断函数的入口地址。R P0_ISR 是可以修改的,一般取名要取的有意义哦,R P0INT_VECTOR 可以用下面的方法看定义。...

2018-04-21 10:34:18 4470

原创 来广州的第一天面试总结2018.4.16

第一家:HR:近期规划,薪资4500,Qt做地面站和上位机1)socket编程建立连接是几次握手,断开时几次握手?(这篇文章写的很详细https://blog.csdn.net/weibo1230123/article/details/79975574) 2)函数值传递时:数组和指针传递有什么区别?3)查看cpu进程或线程用到什么命令?1TOP命令,找到占用CPU最高的进程2通过TOP -H -p...

2018-04-17 20:49:01 1067

原创 Linux各版本完整发展图

2018-04-17 20:07:35 2654

原创 socket 编程的端口和地址复用

在linux socket网络编程中,大规模并发TCP或UDP连接时,经常会用到端口复用: int opt = 1; if(setsockopt(sockfd, SOL_SOCKET,SO_REUSEADDR, (const void *) &opt, sizeof(opt))){ perror("setsockopt"); return -1;}那么什么是端口复用呢,...

2018-04-17 18:28:42 7699 2

原创 修改tomcat端口号的方法:

修改tomcat端口号的方法:修改Server.xml文件,把8080端口改成80就可以了。8080是Tomcat服务器的默认的端口号。我们可以通过修改Tomcat服务器的conf目录下的主配置文件server.xml来更改.用记事本打开server.xml文件,找到如下部分: 以下为引用的内容: <Connector port="8080" maxHttpHeaderSize="8192"...

2018-04-17 16:35:51 319

原创 socket 服务器端和客户端通信,面向TCP的

                                                        socket 套接字的使用socket 服务器端和客户端通信,面向TCP的文章链接:https://www.cnblogs.com/liushui-sky/p/5609535.html                https://www.cnblogs.com/cy568searchx...

2018-04-17 15:28:31 26779

翻译 一个C/C++程序从编译到最终生成可执行文件的全过程分析

            一个C/C++程序从编译到最终生成可执行文件的全过程分析C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 1.编译预处理  读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。 伪指令主要包括以下四个方面(1)宏定义指令,如# define Name TokenString,#undef等。对...

2018-04-17 10:18:32 5480

原创 Linux-C实现GPRS模块(GSM A6)发送短信

Linux-C实现GPRS模块发送短信“GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块根据其提供的数据传输速率又可以分为GPRS模块、EDGE模块和纯短信模块。短信模块只支持语音和短信服务。GPRS,可说是GSM的延续。它经常被描述成“2.5G”,也就是说这项技术位于第二代(2G)...

2018-04-15 23:03:24 2100

翻译 ubuntu关闭和开启防火墙

                             ubuntu关闭和开启防火墙1.关闭ubuntu的防火墙:ufw disable2.开启防火墙:ufw enable3.卸载了iptables:apt-get remove iptables4.关闭ubuntu中的防火墙的其余命令:    iptables -P INPUT ACCEPT    iptables -P FORWARD ACC...

2018-04-13 11:11:13 1554

翻译 winscp 服务器拒绝了SFTP连接,但它监听FTP连接。 想要用FTP协议来代替SFTP吗?最好是用加密的。

winscp 服务器拒绝了SFTP连接,但它监听FTP连接。 想要用FTP协议来代替SFTP吗?最好是用加密的。在用Winscp 连接Ubuntu是出现:原因是Ubuntu上没有安装sshd解决步骤:1,sudo apt-get install yum 安装 ,中间有输入:Y2,sudo apt-get install openssh-server,中间有输入:Y3,sudo ps -e |gre...

2018-04-13 11:08:40 6478 2

Lua源代码分析顺序

Lua源代码分析顺序

2019-04-11

Memcached源码分析之内存管理

Memcached源码分析之内存管理Memcached源码分析之内存管理

2019-04-11

extern()和 flock()函数

extern()和 flock()函数extern()和 flock()函数

2019-04-11

cJSON是C语言中的一个JSON编解码器

cJSON是C语言中的一个JSON编解码器cJSON是C语言中的一个JSON编解码器

2019-04-11

coreutils 的所有代码链接

coreutils 的所有代码链接coreutils 的所有代码链接coreutils 的所有代码链接

2019-04-11

魏波-的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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