自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

顺溜的博客

分享编程干货,职场感悟,创业心得,生活经历等等

  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

原创 22_微信小程序开发-BLE低功耗蓝牙开发-源码

我没想到很多同学都在私信我,问我要这个 iBLETool 的源码,是我没考虑到的。其实最开始没有把源码分享出来,主要的原因是这个项目是我自己拿来练手的,有很多地方考虑不完善,怕误导了各位同学!现在很多同学在问我要这个源码,那么我就把它开源出来,希望能够对你有所帮助!请关注我的微信公众号,并回复 iBLETool 就可以获取源码链接了。如果各位同学在使用源码的过程中遇到问题,也可以微信留言,主要是CSDN不常登录,不能及时回复你的消息,抱歉!...

2022-04-21 17:21:20 1299 8

原创 21_微信小程序开发-BLE低功耗蓝牙开发-总结

从1月12号开始到今天1月24号,这个项目正式开发完成结束,中间零零散散的整体算下来应该花了差不多1周的时间吧。中间为了解决一些疑难问题,晚上还干到1点多,这个可能也是程序员的执著吧。其实我也是初次接触到微信小程序,我本身不是做应用端开发的,而是做嵌入式和中间件相关的,只是以前了解过应用相关开发的知识,所以开发起来还是遇到了很多障碍,有些问题对于做应用开发的人来说是很基础的,但是我可能需要花很多的时间去解决,不过也没有关系,学习的过程也就是这样的。只要有浏览器可以搜索,知道怎么通过关键字找到自己想要的结果,

2022-03-07 15:41:26 1034 1

原创 20_微信小程序-BLE低功耗蓝牙开发-发布小程序

所有功能测试OK了,就剩下最后一步了,那就是把开发好的微信小程序发布出去。1. 填写小程序信息,登录小程序管理平台,在设置->填写信息,里面填写小程序相关信息(后面我直接把小程序名称改为“iBLETool”了)2. 在详情里面吧AppID修改为正式id3. 点击上传按键上传代码填写版本号和版本描述4.在小程序管理平台的:版本管理里面找到开发版本,然后点击提交审核5.填写审核相关内容,包括小程序截图、演示视频等。6.填写隐私政策。...

2022-03-04 11:20:10 1759

原创 19_微信小程序-BLE低功耗蓝牙开发-分辨率适配的单位

说到小程序适配,这里可以说一下微信小程序的‘rpx’。其实现在不管是安卓还是IOS的设备,在设计的时候,都不是直接采用屏幕的物理分辨率单位,因为不同手机分辨率不一样,那么做设计开发的人员不可能去针对每款手机都去做一套UI,所以为了统一方便设计,采用了一个对应关系的单位,比如苹果的pt,安卓的pd,微信小程序的rpx,表示的是一个对应关系。在不同分辨率的手机上,对应关系是不同的。这个对应关系是系统自行去计算的,这样设计的时候,就只需要设计一套,然后就可以在大部分的手机上正常显示了。某些手机还是要去做特殊的调整

2022-03-03 13:52:32 621

原创 18_微信小程序-BLE低功耗蓝牙开发-测试和适配

由于我开发过程中用的是苹果的手机,并没有在安卓平台上测试过,而且也没有在其他分辨率的手机上跑过,大概率会存在很多兼容性、适配问题。所以准备在其他手机上测试一下。发现的问题点:1. 苹果和安卓返回的设备信息不一样。1) 安卓返回的设备信息:2) 苹果返回的设备信息:安卓返回的设备信息的devicdId直接是MAC地址,而苹果返回的设备信息是类型于UUID的字符串,所以解析MAC地址的时候,要根据情况做处理,不然解析的时候会有异常。2.手机分辨率适配问题虽然用了微信的..

2022-03-02 11:57:42 816

原创 17_微信小程序-BLE低功耗蓝牙开发-数据本地存储

其实到目前为止,BLETools工具相关功能已经完成了,不过为了更加方便的使用,发送内容区那里最好做本地化存储处理,这样用户就不需要每次打开都去输入内容了。本地化存储需要用到微信的缓存相关API,参考页面:wx.setStorageSync(string key, any data) | 微信开放文档存储我采用:wx.setStorageSync(string key, any data, Boolean encrypt)接口读取存储信息采用:any wx.getStorageSync(

2022-03-02 11:51:14 387

原创 16_微信小程序-BLE低功耗蓝牙开发-循环发送数据

循环发送数据逻辑很简单,需要用到定时器函数:setInterval和clearInterval在循环发送选择框有效的时候,就开启循环发送定时器,选择框无效的时候,就清除循环发送定时器wxml代码:<!--发送区底部bottom部分--><view class="sendBottomView"> <checkbox checked="{{cycleSendFlag}}" bindtap="cycleSendCheckBoxClick"/>循环发送(ms):

2022-02-28 20:05:12 884

原创 15_微信小程序-BLE低功耗蓝牙开发-读写特征值

读写特征值之前,用户需要先选择对应的特征值ID,用户选择了特征值ID以后,通过变量记录下来,方便下次使用。currWriteChar: { // 当前选择的写入特征值 flag: false, // 表示是否可用 serId: "", // 服务ID charId: "" // 特征值ID},currReadChar: { // 当前选择的读/通知特征值 flag: false, // 表示是否可用 serId: "", // 服务ID charId: "" // 特征值ID}

2022-02-26 10:40:06 1541

原创 14_微信小程序-BLE低功耗蓝牙开发-服务和特征值获取

获取服务列表和特征值列表,需要用到微信的两个接口:wx.getBLEDeviceServiceswx.getBLEDeviceCharacteristics这里依然对这两个接口进行的封装,在ble.js里面新增了两个对应的接口/*** 获取service* @param {string} deviceId* @param {function} cb 成功返回服务列表,失败参数为null*/function getDevServices(deviceId, cb) /**

2022-02-24 16:20:18 1418 2

原创 13_微信小程序-BLE低功耗蓝牙开发-树形布局

自定义弹窗OK了,但是还得给里面填充内容。BLE的设备信息是一个设备包含了多个服务,每个服务下面又有多个特征值,所以这里最好的方式是采用树形结构的方式去展示设备相关信息,类似于如下的效果:内容大致如下大概就是:服务名称服务UUID--特征值名称--特征值UUID服务名称服务UUID--特征值名称--特征值UUID在网上看了一下自定义的树形...

2022-02-22 15:13:13 302

原创 12_微信小程序-BLE低功耗蓝牙开发-自定义弹窗界面

在获取服务列表和特征值列表完成后,需要把相关的信息呈现出来,这里采用一个弹窗界面,把服务ID和特征值ID显示出来。微信小程序的原生弹窗不能满足需求,这里只有自定义弹窗窗界面了。wxml代码:<!--弹出框--><!--要加上catchtouchmove="dialogViewTouchMove",否则页面可滑动--><view class="dialogView" catchtouchmove="dialogViewTouchMove" wx:if="{{dial

2022-02-21 19:32:15 636

原创 11_微信小程序-BLE低功耗蓝牙开发-打印输出

随着模块的增加,打印信息越来越多,很难区分到底是哪个模块的打印,所以这里在utils新增一个debug.js的模块,用于控制打印输出。// 打印模块const DEBUG_DEBUG = 0; // debug打印等级const DEBUG_INFO = 1; // info打印等级const DEBUG_WARNING = 2; // warning打印等级const DEBUG_ERROR = 3; // 错误打印等级const debug_level = DEBUG_DEBUG;

2022-02-21 19:29:07 426 3

原创 10_微信小程序-BLE低功耗蓝牙开发-连接设备

1. 连接蓝牙设备,需要使用微信的wx.createBLEConnection接口,参数为蓝牙设备的deviceId(这个参数在搜索的设备信息里面可以直接拿到)。2. 在ble.js里面新增connect、disconnect、getDevConStatus三个接口,用以统一管理设备连接和设备断开,因为在安卓平台上,重复去连接会导致设备没有办法断开连接。所以在ble.js里面还维护了一个连接/正在连接的设备数组,方便统一管理设备。当调用connect的时候,会先去这个数组里面查找是否有该设备,如果有就不

2022-02-18 15:23:05 2479

原创 09_微信小程序-BLE低功耗蓝牙开发-控制界面UI布局

遇到的问题1. 子元素相对父元素靠右或者靠左对齐的实现父元素要设置为相对位置,子元素设置为绝对位置,然后就可以设置left、right等参数2. 给输入框添加下划线直接在输入框样式里面添加个下边框 3.在样式里面设置按键宽度不生效问题如果直接在xwss里面设置按键按键宽度,是没有效果的,只能直接设置style属性 ...

2022-02-17 17:57:42 585

原创 08_微信小程序-BLE低功耗蓝牙开发-设备搜索

遇到的一些问题BLE相关的好多函数都是异步的,但是BLE的操作又必须按照顺序流程来,否则就会出现问题,所以这里得嵌套大量的回调函数。 普通回调函数中this拿不到data数据的问题 原因:小程序在回调函数中调用this数据报错是因为在程序运行过程中,this对象也会发生改变,导致在普通回调函数之中改变后的this对象没有相关数据,即会报错 解决方法:1)使用全局变量保存这个this;2)使用箭头函数 下面开始正式开发ble设备搜索功能,为了...

2022-02-16 14:37:06 960 2

原创 07_微信小程序-BLE低功耗蓝牙开发-权限申请

1. 在开发BLE之前,需要先申请相关权限,否则初始化蓝牙的时候,会返回错误码10001。授权相关可参考文档:授权 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html#scope-%E5%88%97%E8%A1%A82.权限申请流程 1)检查该权限是否申请 wx.getSetting 2)如果...

2022-02-16 14:30:22 3287 2

原创 06_微信小程序-BLE低功耗蓝牙开发-流程

初学微信BLE,参考: 蓝牙低功耗 (Bluetooth Low Energy, BLE) | 微信开放文档 微信BLE操作流程 1)申请ble权限‘scope.bluetooth’ 2)初始化蓝牙模块 wx.openBluetoothAdapter 3) 如果初始化失败,请提示用户授予微信ble权限,并打开蓝牙。初始化成功则跳过该步骤。 4)扫描并发现蓝蓝牙...

2022-02-16 14:26:49 766

原创 05_微信小程序-BLE低功耗蓝牙开发-搜索界面事件处理

1. 给List添加点击事件直接真机仿真调试,点击list,查看打印2. 给按键添加事件给按键添加事件,依然采用的是bindtap事件添加事件处理函数 3. 按键事件逻辑这里我们需要给按键事件添加想要的逻辑了,按键在这里有两种状态,1. 停止搜索状态,2. 正在搜索状态。当按键处于停止搜索状态的时候,按键显示“搜索”、去清空设备列表,点击按键按键状态变为2,显示“停止”。这里怎么才能改变...

2022-02-16 14:25:40 541

原创 04_微信小程序-BLE低功耗蓝牙开发-搜索界面UI布局

其实到目前为止,我还没有做过微信小程序的开发,只是有一点界面开发的知识和概念,下面我将尝试开发蓝牙搜索界面的UI。蓝牙搜索界面:根据蓝牙搜索界面的布局,设备显示列表会用到:文本控件、列表显示控件。控制部分会用到:按键控件,进度条控件,其实我也不知道微信小程序里面现在的这些控件是怎么用的,只能现学现卖。1. 大致看来一下微信的Demo,布局都是通过View来控制的,感觉有点基础了,直接开干。删除index.wxml文件里面的内容,只留下一个主view,样式引用的是app.wxss里面的co

2022-02-15 14:44:26 1112

原创 03_微信小程序-BLE低功耗蓝牙开发-原型设计

想尝试一下微信小程序对ble低功耗蓝牙的功能是否好用,所以准备开发一个BLETools的小工具。该工具分为蓝牙设备搜索界面、蓝牙操作控制界面,总共两个界面。1. 蓝牙搜索界面如下: 可以点击搜索按钮开始搜索设备或者停止搜索,并且旁边有搜索进度显示。搜索到的设备会显示在设备列表框内,每个设备包括:设备名称、MAC地址、信号强度、广播数据。点击对应的设备,可以连接该设备,并且进入控制界面2. 控制界面 控制界面主要分为三个区域...

2022-02-15 14:38:19 1001

原创 02_微信小程序-BLE低功耗蓝牙开发-文件类型和说明

查看编辑器,里面罗列了各种不同的文件1. pages目录下对应的是一个页面相关的文件.js: 脚本文件,相关逻辑代码写在这个文件里面.json: 数据文件.wxml: 可以叫做界面布局文件.wxss: 样式文件,用于设定界面或者某元素的样式2. logs目录下存放的是一些和日志相关的3. utils目录下存放的是一些全局相关的文件app.js: 入口文件app.json: ...

2022-02-15 14:37:19 279

原创 01_微信小程序-BLE低功耗蓝牙开发-注册和工具安装

访问微信公众号平台,注册小程序 注意:一个邮箱只能注册一个微信小程序 2. 下载安装开发工具 这里有个重要的东西AppID,注册申请的时候生成的。我们这里只做学习用,所以可以点击后面的测试号,会弹出链接,扫码然后申请一个测试号,这里就直接选择测试号的AppID就行。所有信息填写完成后,就可以点击确认创建一个小程序了。 3. 主界面 主界面和Chrome的调试界面很像,主要有...

2022-02-15 14:33:20 6860

原创 关于主业和副业的思考

个人理解,没有主业和副业之分,只有自己适合什么样的行业和领域。主业大概率是指现在从事的工作或者谋生的事业,副业就是想找到的另外一种赚钱的途径,大部分人做副业,是因为现有的工作不适合自己,或者不满足现有的收入,所以才想去找有没有其他路子可以走,就像很多上班族做兼职、代购、自媒体、教学视频等等,其实说白了,就是做一种新的尝试和选择,去看看其他的行业或者领域是否更适合自己。不是说一定要把主业做好了,才能做好其他的,很有可能主业并不是自己所擅长的,很多人毕业了,并不是从事本专业的事情,不是说他们能力不行才转行,而是

2021-06-12 16:59:00 508

原创 单片机汇编语言学习

一、写在开始之前 现在我们已经很少能够接触到汇编语言了,汇编使用起来很麻烦,也不太好理解,而且平时大家学习的用的基本上都是过程或者面向对象的高级语言,比如C、C++、Java、Python等,我也是由于项目需要才有机会接触到汇编,而且是单片机的汇编语言,相对比较简单,常用的指令很少,不复杂,当然也不能用来实现太复杂的功能,只能用来做点消费类的电子小产品,通过这次的项目,1K的空间,也能够实现红外接收控制、EEPROM驱动存储、PWM实现对应的RGB彩灯效果,初步看来,用汇编编程相比于C语言...

2021-06-12 16:45:54 9010

转载 蓝牙4.0BLE抓包(三) – 扫描请求和扫描响应

本文转载于:强光手电[艾克姆科技-无线事业部]原文链接:https://www.cnblogs.com/aikm/p/5144209.html1.扫描请求和扫描响应  广播包含扫描请求SCAN_REQ和扫描响应SCAN_RSP。扫描请求:由链路层处于扫描态的设备发送,链路层处于广播态的设备接收。 扫描响应:由链路层处于广播态的设备发送,链路层处于扫描态的设备接收。  处于...

2019-08-06 10:34:33 1019

转载 蓝牙4.0BLE抓包(二) – 广播包解析

本文转载于:作者:强光手电[艾克姆科技-无线事业部]原文链接:https://www.cnblogs.com/aikm/p/5022502.html  在使用EN-Dongle捕获和解析广播包之前,我们先了解一下BLE报文的结构,之后,再对捕获的广播包进行分析。在学习BLE的时候,下面两个文档是极其重要的,这是SIG发布的蓝牙的核心协议和核心协议增补。核心协议Core_v4.2。...

2019-08-06 10:33:03 586

转载 蓝牙4.0BLE抓包(一) - 搭建EN-Dongle工作环境 使用EN-Dongle抓包 nRF51822

本文转载于:强光手电[艾克姆科技-无线事业部]原文链接:https://www.cnblogs.com/aikm/p/5021220.html 蓝牙4.0 BLE的开发过程中,使用抓包器进行抓包分析无疑会极大地提高我们的开发效率,同时能帮我们快速的定位问题。对于初学者来说,抓包分析能让我们更快的理解蓝牙4.0 BLE的工作过程。本文详细说明如何搭建EN-Dongle的抓...

2019-08-06 10:30:31 364

原创 程序员如何提升自己的能力

可能很多人觉得,在一家公司干久了,每天都是做着相似的工作,专注于自己那一块的业务,能力没什么提升。这是一个很普遍的现象,企业越大,分工越明细,而且很多程序员都是干的和业务相关的工作,每天都是实现业务逻辑,项目也特别多,能力也会随着时间的推移有一定的提升,但是这种提升是有限的,刚工作的两年觉得进步很明显,慢慢地就会感觉无论自己怎么努力的工作,能力都没有什么明显的提升了,这就是到了瓶颈期,需要进行系统...

2019-05-15 21:25:24 4927

原创 Python环境搭建

一、安装Python 目前Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。由于3.x版越来越普及,所以我下载的是最新的Python 3.7版本。下载路径:https://www.python.org/downloads/windows/ 选择3.x版本 根据系统版本,选择对应的版本下载安装 ...

2019-05-11 13:32:57 226

原创 从甲骨文中国研发中心大裁员细说技术人员的未来

相信大家都听说了,甲骨文中国研发中心大裁员,首批将裁员约900人,裁员幅度是相当大的,但是赔偿方案还是很良心“N+6”。很多网友感叹太良心了,都想被裁。相比于国内某些企业所谓的优化结构,真心已经很好了。但是却有被裁的部分员工表示不满,觉得不公平。为什么不公平,其实真的很不公平,最近一段时间企业裁员上头条的,基本上都是和IT相关的,而且每次研发人员都是裁员的大头。作为一个程序员,每次听到这...

2019-05-08 22:30:50 1517

原创 如何被动学习

突然有所感悟,由此记录下来。其实当下的社会,很多人都没有主动学习的意识和习惯了,当然我自己也是。其实我也知道,学习对一个人是多么的重要,特别是在IT这个行业,技术日新月异,Android版本的发布,比自己学得都要快!想学习这个潜意识还是有的,但是往往都是三分钟热情,那么怎么克服这些问题呢?可以从以下几个方面去入手:一是减少身边的诱惑、二是找到能强迫自己学习的方式 ...

2019-05-08 20:22:24 1392

原创 怎么从ST官网下载资料

ST系列的单片机在嵌入式领域非常常用,比如:STM8系列、STM32系列。虽然相比于国产单片机,算是非常昂贵的,但是有如下几个优势:开发资料丰富、完善、易于查找。学习容易上手,出问题后,可以在网上找到对应的解决方案。 开发工具IDE使用通用的KEIL或者IAR,便于移植和协作开发。 有很好的开发框架,代码风格非常好,甚至提供STM8CubeMX这样的配置工具,通过配置,直接生成对应的代码。...

2019-03-19 16:15:09 6283

原创 程序员的立身之本

孟子有云「 真诚是立身之本 」,那什么是程序员的立身之本呢?程序员的立身之本可以从一下几个方面说起: 严谨细致、工作计划、记录和总结、编码规范。● 严谨细致严谨细致 —— 一种对人、对事、对自己都极为负责的态度。为什么把严谨细致放到第一呢,因为这是一种对人、对事、对自己都极为负责的态度,这种态度将影响学习、工作、生活的方方面面,直至一生。有些人可能会说,不就是做个程序员吗?又不是造...

2019-01-25 15:16:15 376

原创 程序员的自我修养入门篇-启动篇

    不哭,我们会在程序员的道路上走得更好!    摇摇晃晃在程序员这个道路上走了5个年头,到目前为止,还是认为自己不是一个合格的程序员,时时刻刻都有想转行的冲动,但是最终还是默默地坚持了下来。程序员的道路很艰难,很多时候可以说是痛苦的,特别是从大学毕业刚刚步入这个行业的时候。可能很多人都不知道当初为什么去学习编程,稀里糊涂的就开始了,老师就是噼里啪啦的照着课本讲了一大堆,自己什么也没听懂,...

2019-01-12 23:28:58 303 1

转载 stm32启动流程分析(转载)

今天在网上看到一篇对stm32启动流程作分析的文章,感觉还不错,写得挺详细的,涉及到汇编,对stm32的start文件和map文件做了分析,现在转载出来。文章原始出处:MDK STM32启动文件的详细分析(_main,map详细分析)http://www.openedv.com/thread-20164-1-1.html (出处: OpenEdv-开源电子网)如作者不同意转载,请联系我!...

2017-04-21 09:40:43 482

原创 STM32F030 IAP升级研究

     在使用SMT32F103的时候,发现STM32是可以通过串口实现在线升级的(当然也可以通过文件的形式升级,原理都是一样的),正好在使用STM32F030,所以就想能不能在STM32F030上做一个在线升级的功能,通过一天的捣腾,还是搞出来了。后面想想了,还是把整个过程写成文档的形式分享出来。因为网上的资料都是零散的。     主要的参考资料:          《AN4657-S...

2017-04-20 22:04:47 13596 6

原创 Android NDK编译

 Android NDK编译学习1、Hello_Jni学习    在android-ndk-r8\samples的目录下有大量的NDK的测试用例,只需要在Eclipse中导入,即可以使用。不过想要在Eclipse中编译JNI,当然得配置一些东西。    首先,JDK的安装是少不了的,安装好JDK后,配置好JDK的环境变量:在系统变量里点击新建,变量名填写JAVA_HOME,变量...

2014-11-02 18:26:37 730

原创 Cocos2d内存管理分析

   Cocos2d内存管理分析1、 UML图 2、 说明步骤1:cocos2d在初始化的时候调用CCDirector中的init方法,在init方法中:       // create autorelease pool       CCPoolManager::sharedPoolManager()-&gt;push();           即创建了...

2014-10-21 22:23:10 555

iBLETool读写特征值演示视频

iBLETool读写特征值演示视频

2022-02-26

stm32启动流程分析(转载)

今天在网上看到一篇写stm32启动流程分析的,讲得很详细,涉及到汇编,分析了stm32的start和map文件,感觉很不错,在这里分享出来。 文章原始出处: MDK STM32启动文件的详细分析(_main,map详细分析)http://www.openedv.com/thread-20164-1-1.html

2017-04-21

stm32f030 IAP Demo(原创)

stm32f030 IAP在线升级参考代码,原创

2017-04-20

空空如也

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

TA关注的人

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