自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 具有任务优先级的单片机任务调度器

这是一个模仿RTOS内核的非抢占式任务调度器,最大32级优先级(可自定义级数)、每级最大256个任务;集成软定时器功能(需要一个硬定时器支持),分为定时单位10us和1ms两种,每种最大为256个任务进行定时,当没有任务需要定时时,硬定时器处于关闭状态。通过以下4个函数进行对任务的操作:Task_Start(s_Task *Task);//启动任务–执行任务Task_Hangup(s_Task *Task);//挂起任务 避免在中断中挂起任务Task_Timer_10us(s_Task *

2021-04-25 14:15:32 1712

原创 简单的AT指令解析

制作一个简单的AT指令解析最近在开发nrf51822工作上需要搭建一个简单的AT指令库,突然灵机一动想到了这个样一个简单的AT解析函数,虽然不是特别完美但还需各位大神多多指教。一般,我们的AT命令组成为:1、查询命令 AT+instruction\r\n2、设置命令AT+instruction= <param>\r\n举个栗子:我要通过AT查询波特率以及设置波特率1、查询 AT+BAUD\r\n2、设置 AT+BAUD= 115200\r\n好知道这种格式之后我们发现这个命令都有

2021-04-25 13:54:22 5246 5

原创 嵌入式面试题4

1.、引用与指针有什么区别?引用必须被初始化,指针不必。引用初始化以后不能被改变,指针可以改变所指的对象。不存在指向空值的引用,但是存在指向空值的指针。2.、全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈3、堆栈溢出一般是由什么原因导致的?没有回收垃圾资源4、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

2021-03-07 23:37:05 614

原创 硬中断与软中断的区别

硬中断:硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。处理中断的驱动是需要运行在CPU上的,因此,当中断产生的时候,CPU会中断当前正在运行的任务,来处理中断。在有多核心的系统上,一个中断通常只能中断一颗CPU(也有一种特殊的情况,就是在大型主机上是有硬件通道的,它可以在没有主CPU的支持下,可以同时处理多个中断。)。

2021-02-27 18:06:49 334

原创 嵌入式面试题3

1、讲一下STM32时钟系统时钟系统类似于脉搏,控制着CPU的命脉,STM32的时钟源又不像51的时钟源那么单一,因为STM32的MCU较为复杂,且外设较多,并不是所有的外设都需要那么高的时钟频率,而且较高的频率对功耗和抗干扰都不具优势,所以对复杂的MCU系统往往采取多个时钟源,STM32有5个时钟源,HSI、HSE、PLL(这三个往往作为系统时钟)、LSI(外部看门狗时钟)、LSE(STC时钟源)。2、c语言中堆和栈的区别1、数据结构上:都是一种数据项按序排列的数据结构。栈:一种具有先进后出性

2021-02-26 16:56:05 3709

原创 zigbee各层作用简述

物理层:主要进行无线数据的收发,同时定义了无线传输的信道以及频率。MAC层:使用CSMA-CA机制接入到无线信道,负责传输信标帧,保持同步和提供可靠的传输机制。网络层:主要负责网络的建立以及网络地址的分配,网络拓扑结构,网络的路由管理。应用层:应用支持子层,ZDO层,应用框架层、应用支持子层:绑定及绑定维护 zigbee设备对象层;为定义网络的节点的角色,以及网络服务ZDO通过端点0可以使应用程序和zigbee协议栈的其他层进行通信。一个端点对应一个任务,一个任务都有唯一的任务号及任务处理函

2021-02-23 17:51:09 5361

原创 ZigBee协议栈中AES-128加密算法

Z-stack对Zigbee2006提供了全面的支持,功能之强大,性能稳定、安全性高,说到安全性是我们今天的主题。CC2430硬件支持128bit的AES加密算法,在协议栈中为了避开相同设备的干扰,和防止被其他设备监听,我们就采用这个技术将数据加密来提高数据的安全性。AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 是一个新的可以用于保护电子数据的加密算法。明确

2021-02-23 13:05:55 980

原创 STM32串口接收不定长数据原理与源程序

来说一下STM32单片机的接收不定长度字节数据的方法。由于STM32单片机带IDLE中断,所以利用这个中断,可以接收不定长字节的数据,由于STM32属于ARM单片机,所以这篇文章的方法也适合其他的ARM单片机。IDLE中断什么时候发生?IDLE就是串口收到一帧数据后,发生的中断。什么是一帧数据呢?比如说给单片机一次发来1个字节,或者一次发来8个字节,这些一次发来的数据,就称为一帧数据,也可以叫做一包数据。如何判断一帧数据结束,就是我们今天讨论的问题。因为很多项目中都要用到这个,因为只有接收到一帧数据以

2021-02-16 11:18:15 1023

原创 STM32的引脚模式配置

库函数,选择好GPIO_Mode之后,就要使用GPIO_Init()函数来配置,你可以打开这个配置函数,实际上也是在对“配置寄存器”进行写操作。先解释一下这个结构体中的各个变量的意思:GPIO_Mode_AIN:模拟输入模式GPIO_Mode_IN_FLOATING:浮空输入模式GPIO_Mode_IPD:下拉输入模式GPIO_Mode_IPU:上拉输入模式GPIO_Mode_Out_OD:通用开漏输出模式GPIO_Mode_Out_PP:通用推挽输出模式GPIO_Mode_AF_OD:复用

2021-02-16 09:34:11 2380

原创 嵌入式软件面试题2

1、软件测试都有那些种类黑盒:针对系统功能的测试 白盒:测试函数功能,各函数接口2、进程和线程的差别线程是指进程内的一个执行单元(也称进程元),也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导

2021-01-30 20:32:52 517

原创 嵌入式软件面试题1

1、数组和链表的区别。从逻辑结构上来看: 数组必须实现定于固定的长度,不能适应数据动态增减的情况,即数组的大小一旦定义就不能改变。当数据增加是,可能超过原先定义的元素的个数;当数据减少时,造成内存浪费;链表动态进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。从内存存储的角度看: 数组从栈中分配空间(用new则在堆上创建),对程序员方便快速,但是自由度小;链表从堆中分配空间,自由度大但是申请管理比较麻烦。从访问方式类看: 数组在内存中是连续的存储,因此可以利用下标索

2021-01-17 10:50:11 914

转载 更深入一点理解 switch 语句 及 c/c++ 对 const 的处理

更深入一点理解 switch 语句 及 c/c++ 对 const 的处理文章源地址转载请注明原作者,以出处~~前段时间在论坛上看见台湾李维在<<Borland传奇>>一书中对windows编程模式中,消息处理部分有如下的一些分析:他说,在消息处理循环中,一般的形式是这样的MSG msg ;switch( msg ){case WM_XXXXXXX :…case WM_XXXXXXX :…case WM_XXXXXXX :…} ;李维说,这种模式是很低效

2021-01-06 14:24:21 321

转载 关于zigbee协议栈各层的系统分析

随着传感器网络的大肆应用;随着物联网概念的爆发;随着通信技术的迅速发展,人们提出了在自身附近几米范围内通信的要求,这样就出现了个人区域网络PAN(Personal Area Network)和无线个人区域网络WPAN(Wireless Personal Area Network)的概念。WPAN网络为近距离范围内的设备建立无线连接,把几米到几十米范围内的多个设备通过无线方式连接在一起,使他们可以相互通信甚至接入LAN或者Internet。2001年8月成立的zigbee联盟就是一个针对WPAN网络而成立的

2020-12-03 20:53:21 4446

原创 MDK 中寄存器地址名称映射 -- 分析

之所以要讲解这部分知识,是因为经常会遇到客户提到不明白 MDK 中那些结构体是怎么与寄存器地址对应起来的。这里我们就做一个简要的分析吧。首先我们看看 51 中是怎么做的。 51 单片机开发中经常会引用一个 reg51.h 的头文件,下面我们看看他是怎么把名字和寄存器联系起来的:sfr P0 =0x80;sfr 也是一种扩充数据类型,点用一个内存单元,值域为 0~255。利用它可以访问 51 单片机内部的所有特殊功能寄存器。如用 sfr P1 = 0x90 这一句定义 P1 为 P1 端口在片内的寄存

2020-10-19 22:06:27 742

原创 STM32 NVIC中断优先级管理 -- 分析

CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有256 级的可编程中断设置。但 STM32F4 并没有使用 CM4 内核的全部东西,而是只用了它的一部分。STM32F40xx/STM32F41xx 总共有 92 个中断, STM32F42xx/STM32F43xx 则总共有 96 个中断,以下仅以 STM32F40xx/41xx 为例讲解。STM32F40xx/STM32F41xx 的 92 个中断里面, 包括 10 个内核中断和 82 个可屏蔽中断,具有

2020-10-19 21:58:03 583

原创 STM32库函数配置IO的8种模式详解

最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(7)GPIO_Mode_AF_OD 复用开漏输出(8)GPIO_Mode_AF_PP 复用推挽输出对于刚入门的新手,我想这几个

2020-10-18 21:07:47 1767

原创 小小C语言知识点

2020-10-09 19:24:33 105

原创 zigbee中的任务与事件的执行情况1

首先我们必须清楚(任务)与(事件)的一个关系,在任务中存在一个或多个事件,也就是任务与事件不一定是等价的关系。明白了这点之后开始分析我们的zigbee最重要的函数 osal_run_system。void osal_run_system( void ){1 uint8 idx = 0;23 osalTimeUpdate(); //初始化系统时钟4 Hal_ProcessPoll(); //查看硬件方面是否有事件发生 例如 串口 ……56 do {7 i

2020-09-10 10:39:27 1332 1

转载 zigbee 绑定表的应用

一、 绑定本文是作者根据TI Z-Stack开发文档,ZigBee Specification-2007,《Zigbee WirelessNetworking》等英文资料整合和翻译而成,采用中英双语对照方便读者理解,文中翻译不当之处,望广大同行不吝赐教。推广ZigBee技术,提高国内电子行业的国际影响力,是我们无线通讯工程师的愿景。本文欢迎转载,请保留作者信息和出处,作为支持我继续努力前行的动力,谢谢!E-mail:kuangjunbin@gmail.comZigBee2006版本中规定,在全部节点

2020-09-09 10:21:48 1029

转载 zigbee 绑定表

绑定(Binding)是一种控制两个或者多个设备应用层之间信息流传递的机制。绑定允许应用程序发送一个数据包而无需知道目标地址的16位短地址(此时目标设备短地址设置为无效地址0xFFFE),应用支持子层APS从绑定表中自动获得目标设备的短地址,从而将数据顺利发送到目标节点的一个或者多个应用服务乃至分组。  说明:绑定是基于设备应用层端点的绑定,只能在互为补充的设备间被创建。即被绑定的两个设备必须在其简单描述符结构中登记为相同的命令ID,且其中一个设备作为输入,另一个设备作为输出。概述1.1. 概念  

2020-09-08 16:31:54 629

原创 Steam游戏的爬取与分析

Steam游戏的爬取与分析本文爬取了steam冒险类游戏中热销产品中的7500个游戏进行统计分析1、首先要先知道网页链接的组成形式:2、其次查看我们想要爬取的信息区域:3、开始分析:(1)、url的分析:我们发现冒险类游戏的url:https://store.steampowered.com/tags/zh-cn/冒险当点击+页数的时候:可以发现url尾部增加了: #p=1&tab=TopSellersurl变成了:https://store.steampowered.com/t

2020-07-03 21:28:21 12442 4

steam_project.zip

通过python制作的steam爬虫先对steam中用户选定类型游戏进行一个爬取,并将爬取的游戏数据进行一个特定的处理,最后将处理完的游戏数据进行分析,分析该类游戏逐年的好评度,以及价格走势图。

2020-07-03

空空如也

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

TA关注的人

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