对于我这种小白,遇到问题是常见的哈。这里记录下,避免日后再踩坑
1. IPHONE6及6PLUS无法搜索到设备?
特别注意: wx.onBluetoothDeviceFoundAPI返回的数据结构, 其中advertisData
数据段。来看下res.devices 的结构
。 有些供应商设备是没有返回的。
返回的数据结构图:
对于我这种小白,遇到问题是常见的哈。这里记录下,避免日后再踩坑
特别注意: wx.onBluetoothDeviceFoundAPI返回的数据结构, 其中advertisData
数据段。来看下res.devices 的结构
。 有些供应商设备是没有返回的。
返回的数据结构图:
字节(Byte):
是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串。其中下发指令或处理数据时都可以应用到
1B
(byte,字节)= 8 bit(比特)
, 相当于一个字符一个
字节能表示的最大
的整数就是255
5d000001be5d
理解为6个
字节(6B)1 | // ArrayBuffer转16进度字符串示例 |
Android开发 动态申请存储权限、短信权限等的方式
软件首次安装在有新版本时,下载新版本出错,查看错误后发现是读写存储权限未授予,到设置中手动给权限后下载就会正常,解决方法就是动态申请存储权限,如下:
最近在做广告发布终端,基于安卓开发的app,但是在系统或者其他原因会导致异常错误弹窗提示,所以本文旨在去掉这些异常弹窗,增加使用体验
Android7.1屏蔽掉弹出无响应对话框和已停止对话框
代码路径:
/frameworks/base/services/core/java/com/android/server/am/AppErrors.java
handleShowAppErrorUi()handleShowAnrUi() dialog.show()之前 添加包名的判断、过滤或者屏蔽掉弹窗显示即可
以下是实际修改的内容
很多初学者听到线程会觉得晦涩难懂,很多资料一堆专有名词也是让人心烦意乱,本着学习加分享的态度,这里做一个简单的实例分享帮助初学者们初识多线程。
首先大概讲述一下多线程和多进程的区别,任务管理器里各种不同的进程就是多进程,或者是你同时运行多个”.exe’程序就可以理解为多进程,多进程是要更多消耗CPU资源的。
多线程是相对于进程里更小的单位,比如3个线程在1个进程里进行不同的操作,他们所拥有的资源就是那个进程里的资源,不会占用更多资源,只是通过线程更合理的分配资源。
好,大概区分清楚两者后我们进入线程模式!
首先,选择一个PWM通道,从0到15共有16个通道。
然后,设置PWM信号频率。对于LED来说,使用5000 Hz的频率是合适的。
设置信号的占空比分辨率,分辨率从1到16位。此处将使用8位分辨率,可以使用0到255的值来控制LED亮度(2的8次方)。
1 | ledcSetup(0, 30000, 8); // pwm通道, 频率, 精度 |
指定信号将出现在哪个或哪些GPIO上。为此,将使用以下函数:
1 | ledcAttachPin(GPIO, channel) //输出信号的GPIO,产生信号的通道。 |
1 | ledcWrite(channel, dutycycle); // PWM信号的通道和占空比 |
1 | #include <Arduino.h> |
虽然之前在STM32的博文里面的其中一篇讲PWM的博文已经讲过了,但在这里再讲一遍,我们手里的舵机模块基本都是靠时基脉冲中的占空比调节来控制的,那再具体再说的通俗一点呢?就是比如我的时基为20ms , 要求舵机转到0度的所要求的的占空比为0.5ms,那么我们就需要以20ms为一个周期,每个周期内的高电平时间为0.5ms(这就是占空比),然后其余时间为低电平即可,而具体到我手上的这个360度舵机呢,说实话不建议大家使用360度舵机,因为360度舵机失去了舵机最大的优势就是角度调节,我可以控制比如180度的舵机能够精确转动到哪一个位置,但是360度舵机不行,我们只能控制他正反转以及正反转速度,但是控制方法是一模一样的,下边是示例代码
修改logo图片可参考手册,动画可以提供一个参考,不同的地方自行修改
root@08df03d23758:~/workspace/allwinner/android/device/softwinner/a40-p1/media#
将动画放入:device/vendor-name/device-name/media/bootanimation.zip