自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 pycharm、PyQt使用基本知识

一、pycharm启动时如何进入欢迎界面首次安装pycharm并启动时,pycharm会自动进入欢迎界面,如图1.1所示。 图1.1但是,在后期使用过程中,可能需要在每次启动时进入欢迎界面,或者相反,在启动时直接加载上一次(最近)的项目,可以通过下面的方法进行设定。1.打开pycharm,选择File-->Settings...,或者使用快捷键...

2021-09-17 16:49:08 1509

原创 HMC5883L地磁传感器学习总结

HMC5883L采用IIC总线通信HMC5883L地磁传感器IIC操作总结:IIC唯一的7位地址标识:写指令:0x3C;读指令:0x3DHMC5883L的寄存器/********************HMC5883L寄存器地址映射****************************/#define HMC5883L_CRA_BASE 0x00 //配置寄存器A(C

2017-01-09 18:15:51 7270

原创 串口

在理解串口之前,先来说两种电平,RS232电平和TTL电平RS232电平:采用-12V到-3V,等价于逻辑“0”;+3V到+12V,等价于逻辑“1”,是负逻辑。TTL电平:通常数据表示采用二进制,规定+5V等价于逻辑“1”,0V等价于逻辑“0”,称作TTL信号系统,是正逻辑再来说一下什么是串口。按照百度百科的定义:串行接口简称串口,也成串行通信接口或串行通讯接口(通常指CO

2017-01-09 11:43:44 955

原创 电子设计常用知识

一、直插式电阻、电容、电感常识1、电阻直插式电阻封装为AXIAL-XX形式(比如AXIAL-0.3、AXIAL00.4),后面的XX代表焊盘中心间距为XX英寸,注意,单位为英寸。以AXIAL-0.3为例,默认焊盘直径为62mil,其中焊孔直径为32mil。2、电容常见的电容分为两种:无极电容和有极电容无极电容封装以RAD标识,有RAD-0.1、RAD-0.2、RAD-0.4..

2017-01-08 20:34:07 1571

原创 BLE之广播参数初始化

在进行BLE广播初始化的之前,首先要搞明白BLE广播都要配置那些参数,这些参数在哪进行配置(也就是要修改哪些结构体,或者结构体中的哪些成员变量)。广播初始化,肯定要配置广播名字类型、设备类型标志、需要广播的UUID等参数,这些参数都在下面结构体中进行设置。/**@brief Advertising data structure. This contains all options and

2016-10-26 21:10:10 4401

原创 BLE之添加服务

在这里,首先以BLE串口透析中添加的服务为例子来概述一下。参照他人的博客,在BLE串口透析例程中是通过如下协议栈函数将服务添加到协议栈内部表中的。uint32_t sd_ble_gatts_service_add(uint8_t type,  ble_uuid_t const *const p_uuid,  uin

2016-10-26 17:21:38 6215

原创 BLE之UUID

GATT层中定义的所有属性都有一个UUID值,UUID是全球唯一的128位的号码,它用来识别不同的特性。首先来说明一下含义:GATT(Generic Attribute Profile),通用属性配置文件,其中的数据都是实际发送的,也就是蓝牙事件所产生的协议栈事件都是在这里发生的。UUID(Universally Unique Identifier),通用唯一识别码。UUID一般可

2016-10-26 15:34:34 12003 1

原创 PCB绘制

在进行PCB绘制的时候,首先要对自己的电路图有大致的规划,要用到哪些器件,器件是什么封装,都要事先清楚。第一步,肯定是要先绘制电原理图,但是绘制电原理图时需要用到相应的器件,可能有些器件A自带的封装库中并没有,在此,就需要我们绘制自己的集成库。一、绘制自己的集成库1、集成库作为一个工程,要想绘制自己的集成库,必须建立集成库工程(Integrated Library)。文件->新建-

2016-10-12 15:20:15 1735

原创 各种接口

下面都是自己看到的各种常见的接口,是网上各种大神回答的汇总。1、RS232接口与USB接口RS232与USB接口虽然都属于串行接口,但它们的数据格式、通信协议、信号电平以及机械连接方式不同。目前仪器设备大都采用RS232接口与计算机通信。但是随着计算机技术的发展,支持热插拔的USB标准接口将取代RS232接口,在生活中我们也可以看到,现在我们的笔记本基本上都没有RS232接口,基本上都

2016-09-23 16:41:03 2045

原创 PCB布线实践中的一些注意事项

1、线与焊盘之间的距离(尽量远)2、电源尽量靠边3、注意散热问题4、滤波电容接地打通孔(也就是说虽然最后接地都是通过铺铜方式接地的,但是要在各个电容、电阻接地引脚附近打通孔,以保证良好的接地)5、走线宽度(低频板:10mil-15mil;高频板看引脚来确定走线宽度,继电器等大电流走线20mil起)6、AMS1117降压芯片,要接10uF滤波电容7、走线时一些应该注意的事项:

2016-09-13 17:46:00 4845

原创 C语言相似点对比

1、NUL和NULL在说两者区别之前,先说说自己遇到的例子。在刚开始编程的时候,由于对字符串指针的初始化并不是太清楚,在初始化字符串指针str的时候,只写了如下代码:char *str;进行如上初始化之后,就想对其进行使用,而忽略了这个指针并未取得确定地址,指向不可用的空间,就对其进行如下操作:printf("%s",str);在Code::Blocks中打印结果为null。(注意

2016-08-20 22:52:59 1127

原创 嵌入式编程中的uintX_t

其实uintX_t就是通过typedef定义的,利用预编译和typedef可提高效率也方便代码移植。在MDK5编译器中的stdint.h文件夹中,详细定义了uintX_t的各种类型,如下所示:/* * 'signed' is redundant below, except for 'signed char' and if * the typedef is used to declare

2016-08-19 17:07:54 574

原创 代码调试

VC:F5:执行代码到下一个断点处F9:给当前光标所在行加断点F10:执行单行代码,遇到函数直接跳过到下一行,不进入函数内部F11:也是执行单行代码,但遇到函数会进入函数内部

2016-08-15 15:16:35 348

原创 工作总结—HMC5883L应用的一些说明

1、HMC5883L通过IIC总线与主机进行通信,其IIC控制字节地址如下7-bit地址0x1E0001 11108-bit读取地址0x3D0011 11018-bit写入地址0x3C0011 1100可以发现,HMC5883L的IIC控制字节地址与IIC总线控制字节地址是一致的。其中高4位为器件类型标识符,接着3

2016-07-13 17:38:19 9281

原创 C预处理器和C库

编译程序之前,先由预处理器检查程序(因此称为预处理器)。根据程序中使用的预处理器指令,预处理器用符号缩略语所代表的内容替换程序中的缩略语。预处理器可以根据您的请求包含其他文件,还可以选择让编译器处理哪些代码。预处理器不能理解C,它一般是接受一些文本并将其转换为其他文本。

2016-07-04 16:49:15 754

原创 C语言中的循环语句

当型循环while(表达式) 语句当表达式为非0值时,执行while语句中的内嵌语句,流程图如下图所示。其特点是:先判断表达式,后执行语句。直到型循环do......while语句的特点是先执行循环体,然后判断循环条件是否成立。其一般形式为:do循环体语句while(表达式);他是这样执行的:先执行一次指定的循环体语句,然后判

2016-07-01 20:24:30 792

原创 nRF51822 TWI学习

由于nRF51822与模块之间通过IIC总线通信,在解决问题的时候学习了TWI,现在将其总结一下。TWI(Two-wire interface),即两线通信接口,也就是我们平时常说的IIC接口。IIC串行总线一般有两根信号线,一根是双向数据线SDA,另一根是时钟线SCL。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。以下是在百科上

2016-06-28 17:57:34 8760

原创 函数和指针

为了说明函数与指针的关系,下面用了一些例子来说明,在例子中用了typedef,在此,先来介绍一下typedef。声明一个数据指针的时候,必须声明它指向的数据的类型。当声明一个函数指针时,必须声明它指向的函数类型。要指定函数类型,就要指出函数的返回类型以及函数的参量类型。指向的函数类型:1、函数的返回类型2、函数的参量类型首先先来看一个例子:1、voi

2016-06-23 11:32:24 471

原创 结构和其他数据形式

声明结构的过程和定义结构变量的过程可以被合并成一步,如下所示,将声明和变量定义合并在一起,是不需要使用标记的一种情况。结构设计告诉编译器如何表示数据,但是它没有让计算机为数据分配空间。struct { char title[MAXTITL]; char author[MAXAUTL]; float value;}library;初始化结构体变量可以使用与初始化数组相似

2016-06-12 17:34:41 699

原创 存储类、链接和内存管理

变量:1、存储时期:变量在内存中保留的时间2、变量的作用域和链接:一起表明程序的哪些部分可以通过变量名来使用该变量不同的存储类型提供了变量的作用域、链接以及存储时期的不同组合。多个不同的源文件共享的变量、某个特定文件中的所有函数都可以使用的变量、只有在某个特定函数中才可以使用的变量、只有某个函数的一小部分内可以使用的变量作用域:代码块作用域、函数原型作用域或者文件作用域文件

2016-06-07 16:14:14 1237

原创 C语言数组

数组(array)由一系列类型相同的元素构成。数组声明(array declaration)中包括数组元素的数目和元素的类型。数组的初始化1、在声明时对其进行初始化使用花括号括起来的一些列数值来初始化数组,数值之间用逗号隔开,在数值和逗号之间可以使用空格符。例如,用含有12个元素的数组可以用来存储12个月份的天数。int days[MONTHS]={31,28,31,30,31

2016-06-04 10:55:23 11723 1

原创 关于嵌入式编程中的uint8_t、uint16_t......

在嵌入式编程中经常遇到用uint8_t、uint16_t、uint32_t、uint_fast16_t之类的关键字定义一些整型变量,但是具体表示什么意思,并不是太清楚,只是把它当成int之类的整型变量定义关键字。在自己理解他们之前,先写一下在网上搜到的常见的对他们的解释。常见解释(都是个人见解,不一定准确全面)#define uint unsigned int;int和uint的区别:

2016-06-02 20:48:04 40075 4

原创 nRF51822 UART学习

nRF51822 UART引脚配置UART引脚配置和STM32不同,nRF51822没有固定的串口引脚RX和TX,与UART相关的信号RXD、CTS(Clear To Send)、RTS(Request To Send)和TXD可根据PSELRXD、PSELCTS、PSELRTS和PSELTXD寄存器的独立配置映射到相应的物理引脚。nRF51822中与UART相关的寄存器如下图所示。

2016-06-02 15:55:13 13672 3

转载 C/C++中static关键字详解

静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。    静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制    如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将

2016-06-01 17:55:58 370

转载 详解C中volatile关键字

volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;vo

2016-05-31 16:30:22 384

原创 C语言中的一些关键字

volatile关键字volatile关键字以前用的很少,但是在进行nRF51822定时器编程时,碰到在如下程序段,结合程序分析volatile关键字的作用。#include "nrf51.h"#include "nrf_gpio.h"#include "led.h"#include "time.h"#include #include /** * @brief Func

2016-05-31 14:12:06 2207

原创 nRF51822定时器设置

一、nRF51822的时钟系统nRF51822有两种时钟源:1、高频时钟HFCLK;2、低频时钟LFCLK。这两种时钟只有当系统处于System ON模式的情况下才可用。低频时钟源系统有三种低频时钟源:1、32.768kHz晶体振荡器;2、32.768kHz RC振荡器;3、32.768kHz合成时钟(从HFCLK合成的32.768kHz时钟)

2016-05-31 09:13:37 8981 1

原创 nRF51822外部中断学习总结

最近要用nRF51822进行项目的多任务调度,其中不可避免的要用到要用到nRF51822的相关中断首先,nRF51822是基于Cortex-M0架构的MCU,根据nRF51822的软件开发包中的core-m0.h文件夹,可以找到51822的相关中断编号定义(Interrupt Number Definition)/* ------------------------- Interrupt N

2016-05-30 10:12:15 10364 1

空空如也

空空如也

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

TA关注的人

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