自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (3)
  • 收藏
  • 关注

转载 DS18B20 ROM码的搜索算法

当单线总线上挂有多个DS18B20时,系统对总线上器件的数量和每个器件ROM码的识别是通过DS18820的搜索ROM命令与算法配合来实现的。  1.ROM搜索原理  根据单线总线协议,当主机发出搜索ROM命令后,从机应答时从64位ROM码的最低位开始,先发送原码,然后发送该位的补码,之后主机写入1位数据,ROM码最低位与此数据相同的DS18B20继续应答,反之则不再应答,如此循环“读2位...

2019-10-04 21:44:00 803

原创 嵌入式系列官方下载地址

MDK软件下载地址:https://www.keil.com/demo/eval/arm.htmSTM32标准外设库下载地址:https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.htmlSTM32Cube MCU和MCU包 官方下载地址:https://www.st.com/en...

2019-09-25 10:33:20 135

原创 常用通信接口电平标准及转换芯片

通讯标准 电平标准 常用转换芯片 5V TTL 逻辑1:2.4v – 5v 逻辑0:0v – 0.5v USB转TTL:PL2303、CP2102 RS 232 逻辑1:-15v - -3v 逻辑0:+3v - +15v ...

2019-09-20 17:49:12 477

原创 FreeRTOS系统解析-1、FreeRTOS系统简介

1、系统简介不同的的多任务系统有不同的侧重点。以工作站和桌面电脑为例:早期的处理器非常昂贵,多以那时的多任务用于实现在单处理器上支持多用户。这类系统中的调度算法侧重于让每个用户“公平共享”处理器时间。随着处理器的功能越来越强大,价格越来越便宜,所以每个用户都可以独自拥有一个甚至多个处理器。这时候系统的调度算法则设计为让用户可以同时运行多个应用程序,而且计算机也不会显得迟钝。例如:某个用...

2019-09-02 18:51:00 2878

原创 ZIGBEE通讯-13.网络通讯

在ZigBee网络中进行数据通信主要有三种类型:广播(Broadcast)、单播(Unicast)和组播(Multicast)。广播描述的是一个节点发送的数据包,网络中的所有节点都可以收到。这类似于开会时,领导讲话,每个与会者都可以听到。如图所示:单播描述的是网络中两个节点之间进行数据包的收发过程。这就类似于任意两个与会者之间进行的讨论。如图所示:组播,又称为多播,描述的是...

2019-08-31 17:28:26 183

原创 ZIGBEE通讯-12.无线网络管理

ZigBee网络管理主要分为以下几个部分:如何查看节点的网络地址 如何查看节点的父节点的网络地址 如何通过节点的网络地址得到节点的MAC地址 如何通过节点的MAC地址查询节点的网络地址 如何获得网络的拓扑结构1、ZigBee网络中的设备地址在讲述ZigBee网络中的地址类型之前,需要了解一下ZigBee网络中设备类型,在ZigBee无线网络中,主要有三种类型的设备,设备类型的选择...

2019-08-31 11:23:54 358

原创 ZIGBEE通讯-11.协议栈串口透传

在协议栈中已经自带了串口的驱动与使用函数,所以只需要对串口进行初始化,并将串口绑定在APP层,重新编写串口回调函数就可以使用了。接下来将主要分析在协议栈中串口的初始化、串口数据的接收等。从main函数进入系统初始化函数,再进入任务初始化函数,找到MT层任务初始化MT_TaskInit(),进入其中,将串口初始化函数与绑定函数复制到APP层任务初始化函数中。如下:APP层想要调用MT层串...

2019-08-31 10:50:45 258

原创 STM32F407HAL库-12.PWM输出

通过配置STM32F407定时器来实现呼吸灯。PWM输出就是通过定时器通道对外输出脉宽(即占空比)可调的方波信号,信号频率由定时器自动重装寄存器 ARR 的值决定,占空比由定时器比较寄存器 CCR 的值决定。PWM模式分为两种,PWM1和 PWM2,具体区别如下表: 模式 计数器CNT计算公式 说明 PWM1 ...

2019-08-30 20:10:04 2620 2

原创 STM32F407HAL库-11.定时器

定时器(Timer)最基本的功能就是定时了,比如定时发送 USART 数据、定时采集 AD 数据等等。如果把定时器与 GPIO 结合起来使用的话可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以生产输出波形。定时器生产 PWM 控制电机状态是工业控制普遍方法,这方面知识非常有必要深入了解。STM32F4xx系列控制器有2个高级控制定时器、10个通用定时器和2个基本定时器,还有两个看门狗定...

2019-08-30 20:01:46 1108

原创 ZIGBEE通讯-10.ZigBee协议栈的无线点灯

在ZIGBEE协议栈中已经自带了按键与LED的驱动与使用函数,所以只需要将按键与LED修改为使用的开发板所连接IO就可以使用了。接下来将主要分析在协议栈中按键的初始化、按键的检测以及按键事件的传递与处理。按键流程分析过后,着手于无线数据传输,而协议栈已经写好了无线广播,只需要直接调用就可以使用了。1、修改LED灯IO由于协议栈中按键与LED所配置IO口与使用的开发板不同,所以需要对按键LE...

2019-08-27 19:43:40 637 1

原创 STM32F407HAL库-10.滴答定时器

SysTick定时器也叫滴答定时器,是属于CM4内核中的一个外设,内嵌在NVIC中。滴答定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 180M。当重装载数值寄存器的值递减到 0的时候,系统定时器就产生一次中断,以此循环往复。SysTick定时器有4个寄存器,在使用SysTick产生定时的时候,只需要配置CTRL、L...

2019-08-27 19:28:58 1511

原创 STM32F407HAL库-9.待机唤醒

电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行的同时,又有低功耗的要求。在很多应用场合中都对电子设备的功耗要求非常苛刻,如 某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。因此,STM32有专门的电源管理外设...

2019-08-27 19:16:41 2112

原创 ZIGBEE通讯-9.ZigBee协议栈的运行方式

Z-Stack协议栈包含了ZigBee协议所规定的基本功能,这些功能是以函数的形式实现的,为了便于管理这些函数集,从ZigBee 2006协议栈开始,ZigBee协议栈内加入了实时操作系统,称为OSAL。要学习协议栈的运行方式,其实就是在学习OSAL操作系统。1、OSAL常用术语在讲解之前,先介绍操作系统有关的部分基础知识。操作系统(OS)基本术语如下。①资源(Resource) :任...

2019-08-26 19:55:40 209

原创 ZIGBEE通讯-8.ZigBee协议栈的启动

找到协议栈安装目录中的工程文件ZStack-CC2530-2.5.1a\Projects\zstack\Samples\SampleApp\CC2530DB\SampleApp,双击打开,左侧的工程列表有很多协议栈相关的文件夹,例如APP、HAL、MAC等,如图3-2-2所示,从这些文件夹的编排上就可以充分体现出 ZigBee的分层思想,同一层的实现函数文件都存放在同一个文件夹中。任何程...

2019-08-25 10:47:32 105

原创 ZIGBEE通讯-7.ZigBee协议栈简介

想要学习协议栈,必须先知道协议是什么。协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发,而协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发人员调用。ZigBee的协议分为两部分,IEEE802.15.4定义了PHY(物理层)和 MAC(介质访问层)技术规范,ZigBee联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术...

2019-08-25 10:34:24 270

原创 ZIGBEE通讯-6.串口数据收发

UART 模式提供异步串行接口。在 UART 模式中,接口使用 2 线或者含有引脚 RXD、TXD、可选 RTS 和CTS 的 4 线。UART 模式的操作具有下列特点:8 位或者 9 位负载数据 奇校验、偶校验或者无奇偶校验 配置起始位和停止位电平 配置 LSB 或者 MSB 首先传送 独立收发中断 独立收发 DMA 触发 奇偶校验和帧校验错误状态UART 模式提供全双工传送,...

2019-08-24 11:37:06 743

原创 ZIGBEE通讯-5.点亮LED灯

CC253x有21个数字输入/输出引脚,可以配置为通用数字I/O,也可以作为外部I/O信号连接到ADC、定时器或者USART等外部设备。这些I/O口的用途,可以通过一系列寄存器配置,由用户软件加以实现。I/O口具备如下重要特性:21个数字输入/输出引脚 可以配置为通用I/O或外部设备I/O 输入口具备上拉或下拉能力 具有外部中断能力21个I/O引脚都可以用于外部中断源输入口,因此如...

2019-08-24 11:25:57 412

原创 ZIGBEE通讯-4.IAR工程配置

由于IAR集成开发环境支持多种处理器,所以工程建立完成需要对其相应的选项进行设置,使其符合我们所使用的处理器。具体操作如下:单击菜单栏上的Project——Option,如下图所示:在弹出的Option for node”project”对话框中的第一个选项General Option,在C:\Program Files\IAR Systems\Embedded Workbench 6.0 E...

2019-08-24 11:20:01 98

原创 ZIGBEE通讯-3.工程创建

IAR Embedded Workbench的C交叉编译器是一款完整、稳定且很容易使用的专业嵌入式应用开发工具,在上图中的界面单击Project,在弹出的下拉菜单中选择Create New Project,新建一个工程如图所示:在弹出的Creat New Project对话框中Tool chain下拉框中选择8051内核,在Project templates选项框中选择 Empt...

2019-08-24 11:16:33 84

原创 STM32F407HAL库-8.串口数据收发-DMA

串口数据收发(DMA)初始化步骤:第一步:调用HAL_DMA_Init函数初始化DMA参数,函数传入结构体参数如下:typedef struct __DMA_HandleTypeDef{ DMA_Stream_TypeDef *Instance; // DMA数据流地址 DMA_InitTypeDef Init; // DMA通讯的参数 HA...

2019-08-24 11:04:59 3307

原创 ZIGBEE通讯-2.IAR开发环境搭建(EW8051-8101)

使用IAR 开发最大优势就是能够直接使用 TI 公司提供的协议栈Z-Stack 进行开发,只需要调用API接口函数。这里选用ZStack-CC2530-2.5.1a (ZigBee 2007),ZigBee 协议栈可以用于网络通信软件的开发,用户只需要安装ZigBee 协议栈即可实现ZigBee 网络通信的开发。找到如下图软件安装包。双击“EW8051-EV-Web-8101.e...

2019-08-22 20:14:16 1291

原创 ZIGBEE通讯-1.ZigBee简介

1、什么是ZigBee?ZigBee是基于IEEE802.15.4标准的低功耗局域网协议,简单说就是一种无线通信协议。它的名字其实蛮有意思的,这一词来源于蜜蜂的八字舞,由于“蜜蜂(Bee)”是靠飞翔和“嗡嗡(Zig)”地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,蜜蜂依靠这样的方式构成了群体中的通信网络。ZigBee的组网方式与此类似,于是得名ZigBee。ZigBee 是基于IEEE...

2019-08-22 19:56:25 425

原创 STM32F407HAL库-7.串口数据收发-中断

串口数据收发(中断)初始化步骤:第一步:调用HAL_UART_Init函数初始化串口参数,函数传入结构参数如下: typedef struct{ USART_TypeDef *Instance; // 传入串口的基地址 UART_InitTypeDef Init; // 传入串口初始化参数,波特率、奇偶校验等 uint8_t ...

2019-08-22 19:33:29 1246

原创 STM32F407HAL库-5.串口原理

串口作为MCU的重要外部接口,同时也是软件开发重要的调试手段。通用同步异步收发器(USART)能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。USART 通过小数波特率发生器提供了多种波特率,通过配置多个缓冲区使用DMA可实现高速数据通信。任何 USART 双向通信均需要至少两个引脚:接收数据输入引脚(RX)和发送数据输出引脚(TX)。在同步模式...

2019-08-22 18:52:54 539

原创 STM32F407HAL库-6.串口数据收发-轮询

串口数据收发(轮询)初始化步骤:第一步:调用HAL_UART_Init函数初始化串口参数,函数如下:HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);函数传入结构参数如下: typedef struct{ USART_TypeDef *Instance; // 传入串口的基地址 UAR...

2019-08-17 11:52:37 1009

原创 STM32F407HAL库-4.中断管理及按键中断

中断是指当CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂停正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程就称为中断,我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。CM4内核支持256个中断,其中包含了16内核中断和240个外部中断,并且具有256级的可编程中...

2019-08-17 10:37:49 2063

原创 STM32F407HAL库-3.GPIO初始化

在使用HAL库时,GPIO初始化函数定义在stm32f4xx_hal_gpio.c文件中,如下:void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);由这个函数可以看出,在初始化GPIO时,需要向函数传入2个结构体,第一个“GPIO_TypeDef”,这个结构体主要定义了需要初始化的GPIO分组,比较简...

2019-08-17 10:18:15 1522

原创 STM32F407HAL库-2.系统时钟配置

在系统启动之后,程序会先执行HAL库定义的SystemInit函数,进行系统一些初始化配置。SystemInit程序如下:void SystemInit(void){ // FPU 设置 #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3...

2019-08-17 09:44:39 1264

原创 STM32F407HAL库-1.启动文件解析

1、启动文件简介启动文件由汇编语言编写,是系统上电复位后第一个执行的第一段程序。主要做了以下工作:初始化堆栈指针 SP = _initial_sp 初始化PC指针 = Reset_Handler 初始化中断向量表 配置系统时钟 调用C库函数_main初始化用户堆栈,从而最终调用main函数。2、查找ARM汇编指令在启动文件中,会涉及到ARM的汇编指令和Cortex内核的指令。...

2019-08-17 09:39:52 1457 1

原创 STM32F0+SPI通讯

SPI ,全称:Serial Peripheral Interface,即串行外围设备接口。是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI通讯设备之间的常用连接方式如下图:SPI通讯使用3条总线和一个片...

2019-08-17 08:29:33 3238 2

原创 STM32F0+模拟I2C通讯

所谓的硬件I2C就是STM32芯片上有其相应的外设和驱动电路,通过配置相应的寄存器,就可以完成I2C的通信。本节实验我们介绍软件模拟I2C,软件I2C一般是通过GPIO引脚,按照I2C的时序要求来控制引脚电平状态以产生通讯时序。1、I2C通信流程中包含信号如下:开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,...

2019-08-17 08:01:03 5121

原创 STM32F0+硬件I2C通讯

IIC(Inter—Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。在CPU与被控IC之间、IC与IC之间进行双向数据传送,高速IIC总线一般可达400kbps以上。I2C通讯设备之间的常用连接方式:I2C具有如下特点:它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个I2C通讯总线中,可连接多个...

2019-08-17 07:44:33 1424 1

原创 IAR编译报错---Error[e46]: Undefined external "?V1" referred in AF

IAR 和Z-Stack的高低版本是互不兼容的,按照TI社区的方法就可以解决这个问题https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/59042

2019-05-07 09:17:26 3524

原创 RFID射频识别

MFRC522是高度集成的非接触式(13.56MHz)读写卡芯片。此芯片利用调制和解调的原理,并将它们完全集成到各种非接触式通信方法和协议中。MFRC522的内部发送器部分可驱动读写器天线与ISO14443A/MIFARE卡和应答机的通信,无需其它的电路。接收器部分提供一个功能强大和高效的解调和译码电路,用来处理兼容ISO14443A/MIFARE卡和应答机的信号。RC522支持SPI、I2C...

2019-04-13 15:15:41 739

原创 SHT10温湿度传感器

1、SHT1x (包括 SHT10, SHT11 和 SHT15) 属于Sensirion温湿度传感器家族中的贴片封装系列。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器具有体积小、响应速度快、接口简单、性价比高等特点。传感器接口定义如下:SHT10的供电电压范围为2.4v-5.5v,建议供电电压为3.3v。SHT1x的串行接口,在传感器信号的读取...

2019-04-12 16:14:41 6213

原创 DS18B20温度传感器

1、DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点:采用单总线的接口方式 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量。 测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范围内,精度为 ± 0.5°C 。 ...

2019-04-11 17:08:55 30740 6

原创 BMP180气压传感器

1、在测量海拔高度时,传统的做法是通过测量某一高度的大气压力,再经过换算才能得到高度数据。为了测量大气压力,就得用上气压传感器。BMP180不仅可以实时的测量大气压力,还能测量实时温度。同时它还具有IIC总线的接口,便于单片机进行访问。另外它的使用也很方便,不需要太多的操作就可读取到气压及测量数据。2、BMP180的工作电压为1.8v~3.6v,典型工作电压为2.5v,其与单片机相连的典型电路...

2019-04-11 11:27:06 6804 3

原创 BH1750光照传感器

1、BH1750FVI是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。2、传感器特点:支持I2CBUS接口 接近视觉灵敏度的光谱灵敏度特性 输出对应亮度的数字值 对应广泛的输入光范围。(相当于1-65535lx) 通过降低功率功能,实现低电流化。 通过50...

2019-04-10 15:37:41 17664 2

原创 GP2Y10粉尘传感器

1、粉尘传感器 GP2Y10是一款光学空气质量传感器,设计用来感应空气中的尘埃粒子,其内部对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,即使非常细小的如烟草烟雾颗粒也能够被检测到,通常在空气净化系统中应用。该传感器具有非常低的电流消耗(最大20mA,典型值11mA),可使用高达7VDC。该传感器输出为模拟电压,其值与粉尘浓度成正比。2、可测量0.8微米以上的微小粒子...

2019-04-09 13:34:31 2711 1

原创 MQ2烟雾传感器

1、MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器可用于家庭和工厂的气体泄漏检测,适宜对液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的探测,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多...

2019-04-09 10:59:56 27733 30

MQ2烟雾传感器源码.zip

基于STM32F030开发板的MQ2烟雾传感器开发。MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。

2020-03-01

MQ7一氧化碳传感器源码.zip

基于STM32F030开发板的MQ7传感器开发。MQ-7气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。采用高低温循环检测方式低温(1.5v加热)检测一氧化碳,高温(5.0v加热)清洗低温时吸附的杂散气体,传感器的电导率随空气中一氧化碳气体浓度增加而增大,使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。

2020-03-01

RFID射频识别.zip

基于STM32F030开发板,实现MFRC522传感器与IC卡的数据读写以及扣款充值。MFRC522是高度集成的非接触式(13.56MHz)读写卡芯片。此芯片利用调制和解调的原理,并将它们完全集成到各种非接触式通信方法和协议中。

2019-08-25

空空如也

空空如也

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

TA关注的人 TA的粉丝

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