自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (12)
  • 收藏
  • 关注

原创 常见的预处理指令说明

常见的预处理指令如下:预定义指令名称含义#define宏定义#undef撤销已经定义过的宏名#include使编译程序将另一源文件嵌入到另一源文件中#if条件预编译#else条件预编译的else分支#elif条件预编译的else if分支#endif结束条件预编译执行#ifdef如果有定义XXX宏#ifndef如果没有定义XX宏#line改变当前行数和文件名称#error编译错误#pragma可以

2020-09-24 00:36:46 435 1

原创 #define宏与枚举以及typedef关键字的区别

#define宏常量是在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值。一般在调试器里面,可以调试枚举常量,但是不能调试宏常量枚举可以一次定义大量相关的常量,但是#define宏一次只能定义一个...

2020-09-23 23:59:24 717

原创 大端小端模式介绍

大端小端基本概念计算机存储以字节为单位,除开少数可以支持位寻址的单片机(8051,8052等)以外,CPU最小的访存单元为8个比特位即一个字节,那么对于超过一个字节的数据类型在内存中的存储有以下两种模式。大端模式(Big_endian): 字节数据的高字节存储在低地址中,而字节数据的低字节存储在高地址中。小端模式(little_endian):字节数据的高字节存储在高地址中,而字节数据的低地址存储在低地址中。以int数据类型举例。假设int在内存中的大小为两个字节,即占16位,有如下代码:in

2020-09-21 01:40:28 504

原创 最基本的关键字-sizeof

首先sizeof是一个关键字,不是函数,表示计算变量所占内存空间大小。sizeof的计算可以不带括号,但不带括号情况下不能计算数据类型, 比如声明变量int i; 那么sizeof i 是正确的写法,但是sizeof int是错误的写法。可以加括号将其改写成sizeof(int)进行计算。sizeof的返回值为无符号的整型,即unsigned int,有可能在不同系统平台下运行的代码,需要考虑符号位以及位宽的因素,避免造成数据异常。...

2020-09-21 00:42:27 326

原创 winform sqlite基本操作

引用sqlite数据库winform要使用sqlite数据库,必须引用System.Data.SQLite.dll文件,添加方法:右键工程,添加,引用,浏览,选择System.Data.SQLite.dll文件,然后在代码里面便可以使用以下命名空间:using System.Data.SQLite;using System.Data.Sql;using System.Data.SqlCli...

2019-06-22 18:10:25 3205

原创 系统时间与格林威治时间

/*计算当前时间到格林威治时间总共过了多少秒,以当前北京地区东八区时间为准*/unsigned long mktime_second(const unsigned int year0, const unsigned int mon0, const unsigned int day, const unsigned int hour, const unsigned int...

2019-01-14 10:14:13 1780

原创 Makefile 简单编译规则

makefile的规则target ... : prerequisites ... command ... ...target被称为目标文件,prerequisites 表示需要生成target的文件列表。command也就是make要执行的命令。即,target中包含的一个或多个目标文件依赖于prerequisites中的文件,其规则定义在comman中。在默认的情况下,输入mak...

2018-12-15 17:14:14 1927 1

原创 Linux多进程 --无名管道

无名管道的创建函数pipe函数原型:int pipe(int pipefd[2]);头文件:#include <fcntl.h> #include <unistd.h>输入参数: pipefd: int型数组,长度为2,用于创建无名管道后存放对无名管道进行读写的文件描述符。返回值:创建无名管道的结果,0表示成功,-1失败函数说明调用pipe函数创建一个无名管...

2018-11-29 00:40:21 281

原创 Linux多进程--wait/waitpid

等待子进程状态改变函数wait函数原型:pid_t wait(int *status);头文件:#include <sys/types.h> #include <sys/wait.h>输入参数: status: int型指针,用于获取子进程状态发生改变时,返回的状态值。返回值:pid_t是一个宏定义,其实质是int被定义在#include

2018-11-28 00:24:12 794

原创 Linux多进程--创建进程(fork/exit)

创建进程fork()函数原型:Pid_t fork(void);头文件:#include <unistd.h> #include <sys/types.h>参数:无参数返回值:pid_t pid_t是一个宏定义,其

2018-11-26 15:18:28 948

原创 STM8 如何自制BootLoader并实现在线升级

STM8自制Bootloader程序,可实现串口进行软件升级,利用该部分原理,可远程进行代码的修改和功能的更新

2017-09-30 14:49:24 10319 7

原创 STM8 时钟源切换

STM8时钟源:1、1~24MHz的高速外部晶体振荡器(HSE),即外部晶振 2、1~24MHz的高速外部时钟信号(HSE), 3、16MHz的高速内部RC振荡器(HSI) 4、128KHz的低速内部RC振荡器(LSI) 默认时钟源:由上述时钟框图,可以分析得知,16MHz HSI RC振荡器经过一个分频器,将时钟信号输出到主时钟选择器。单片机上电后默认该分频器的值为8分频,即单片机上电主时

2017-02-17 16:36:33 4752

原创 STM8 UART中断发,中断收

STM8 UART 初始化配置STM8 UART的几个常用寄存器分别为: UART1_CR1:控制寄存器1 UART1_CR3:控制寄存器3 UART1_BRR2:波特率寄存器2 UART1_BRR1:波特率寄存器1利用控制寄存器1,2,3可以配置UART数据传输的具体帧格式,这里将UART配置为1个起始位,8个数据位,1个停止位,无校验位。具体操作代码如下: UART1_CR1=

2017-01-23 16:46:31 7538 1

原创 MP4文件数据格式

MP4文件结构MP4文件中所有数据都封装在Box中 (QuickTime中为atom),即MP4是由若干个Box组成的,每个Box还可以包含其他的Box这样的Box称为container box.一个MP4文件首先会有且只有一个ftyp类型的box,作为MP4格式的的标志并包含关于文件的一些信息;之后会有且只有一个MOOV类型的Box它是一种container box,子box包含了媒体的metad

2016-12-17 10:55:01 1533

原创 火星坐标与地球坐标的转换,以及地球上两点之间的距离计算

火星坐标与地球坐标的转换,以及地球上两点之间的距离计算地球坐标就是我们通过GPS获得的GPS坐标,而我们所谓的火星坐标,就是经过国家测绘局进行加密后的坐标(WGS-84 ),而这个火星坐标只在国内有效。下面这个函数用来判断坐标是否属于中国境内,但是这个坐标判断不是太准确,只是大概判断。 bool outOfChina(double lat, double lon){

2016-11-03 20:59:14 4865 3

原创 GMap 鼠标拖拽与单击冲突问题以及按下鼠标移动Marker

GMap 鼠标拖拽与单击冲突问题以及按下鼠标移动Marker好久没有写博客啦,之前写了三篇关于GMap的,还是想继续写下去,在之前的基础之上本篇博客就解决两个问题吧:我们在使用鼠标拖拽地图时,拖拽完成后,抬起鼠标GMap控件会触发鼠标点击事件, 原本博主以为GMap会提供相应的接口去让我们禁止触发鼠标单击事件,但是博主貌似没有找到GMap有提供这个接口,所以这个只能是我们手动来完成了。首先利用G

2016-11-01 23:12:11 4276

原创 GMap 自定义Marker以及规则图形的绘制

自定义marker以及GMap地图上规则图形的绘制

2016-08-12 12:02:17 9349 3

原创 STM32环境搭建,建立工程及程序烧录

开发环境的搭建:STM32开发环境使用Keil MDK进行,今天香农就说说怎么使用MDK建立一个工程首先应该下载到MDK官网:http://www.keil.com/arm/mdk.asp 下载最新版的MDK安装包,进入MDK官网,点击download按钮 跳转到下载界面,填入必要的信息: 然后在页面下方点击提交按钮: 如果填写的信息,符合要求,在本页面将会显示下载连接:

2016-08-01 20:26:40 20778 1

原创 GMap 初步使用

香农上次写了有关GMap开源项目源码的编译方法,这次就讲讲怎么使用GMap进行简单操作吧。首先香农建立了一个winform工程,命名为GMapTest1并在工程中添加了对GMap的引用(GMap.NET.Core.dll和GMap.NET.WindowsForms.dll) 添加完成之后将GMapControl控件拖拽到Form面板上,默认GMapControl名称为gMapControl1(

2016-08-01 15:49:25 15705 5

原创 GMAP 开源代码如何编译

GMAP 开源代码如何编译在公司研究了好久的GMAP,一直想分享一下心得,筹划了好久,今天终于开始写了。有不对的地方还请海涵。由于小编是使用winform进行GMAP开发的,所以这里只赘述winform如何进行GMAP开源代码的编译。首先需要下载GMAP的官方源码,下载地址可以从GMap官网下载,也可以去网上找,小编这里提供一个链接: http://download.csdn.net/downlo

2016-07-30 17:27:33 4040

STM8 模拟串口通信

STM8模拟串口全双工通信,波特率9600,实际测试模拟串口10ms发送9个字节,连续自发自收10万个字节无问题。

2018-07-24

Bootloader_App_DownloadTools

STM8自制BootLoader例程,包含BootLoader源代码,一个APP应用程序,一个winform写的串口升级软件

2017-09-30

STM8切换到HSE时钟源

STM8切换时钟源到HSE,对应8MHz外部晶振,然后通过串口打印消息,波特率9600

2017-02-17

串口中断收发STM8例程

STM8 UART 中断收 中断发

2017-01-23

c068960_ISO_IEC_14496-12_2015.pdf

c068960_ISO_IEC_14496-12_2015.pdf

2016-12-17

Mp4文件解码初步

实现从MP4文件中读取各个box的大小,位置等信息

2016-12-17

GMap 定位点到Marker中心

在GMap上点击地图生成Marker,使点击的点处于Marke图标的中心

2016-11-03

Gmap鼠标拖拽Marker

1. 我们在使用鼠标拖拽地图时,拖拽完成后,抬起鼠标GMap控件会触发鼠标点击事件, 如果我们在地图上点击鼠标添加Marker,如何利用鼠标移动已有的Maker.

2016-11-01

GMap 自定义Marker以及规则图形的绘制

GMap 自定义Marker以及规则图形的绘制

2016-08-12

GMap地图控件GMarkerOverlay使用例程

使用GMap控件进行开发时,在地图层上的GMarkerOverlay的使用例程

2016-08-01

GMap源码编译

配置好的GMap源码可编译工程,可直接对GMap进行调试和修改,

2016-07-30

GMap源码编译引用dll

GMap 源码进行编译时,需要添加到引用中的dll文件

2016-07-30

空空如也

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

TA关注的人

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