自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32F407+UCOSII 使用浮点数导致hardfault

在FPU可用且使用的情况下产生了异常,则栈帧的长度会增加。注:如果这里配置为"Not Used"会导致__FPU_USED宏为定义为0,因为如果选择”Not Used“那么MDK将不会定义宏__TARGET_FPU_VFP,最终导致 __FPU_USED 为宏,他们的关系如下图。要开启FPU需要配置两个地方:代码预编译宏(使用FPU模块)和MDK编译配置(编译生成使用FPU的相关汇编)这里需要修改两个汇编函数 PendSV_Handler 和 OS_CPU_PendSVHandler_nosave。

2024-07-09 17:32:51 877

原创 网络协议及端口号汇总

网络协议及端口号汇总,互联网号码分配机构 (IANA) 维护着端口号与分配给它们的协议的完整列表

2024-05-11 15:25:53 374 4

原创 win10下创建GIT服务器

在win10下创建GIT服务器需要以下软件:GitblitJAVAGit一、安装java1. 下载及安装git服务器Gitblit是基于Java一个工具,所以必须先安装java环境.下载地址: https://www.java.com/zh-CN/安装简单,按提示一路安装即可2. 配置环境变量右键"计算机" --> “属性” --> “高级系统设置” --> “高级” --> “环境变量”2.1 新建"系统变量"变量名: "JAVA_HOME"变量值

2021-07-09 17:55:00 857

原创 将图像转换为16进制文件

在做图像处理时,有时需要将一张已有的图像写入到程序中。这时linux命令xxd可以完成这个需求。注: win10可使用ubuntu子系统来使用linux命令,非常方便xxd -i logo.bmp logo.h此命令将logo.bmp文件的16进制数据存储为c数组xxd命令详细说明:Usage: xxd [options] [infile [outfile]] or xxd -r [-s [-]offset] [-c cols] [-ps] [infile [

2021-01-29 15:13:24 3133

原创 TOOL-串口软件

开发中经常会使用到串口调试软件使用过很多串口软件串口大师 (经典好用软件)BusHound (主要用于抓包)stc-isp (stc单片机程序下载软件,内带串口调试功能)这些都需要下载安装程序,有些软件已经不再更新,与系统有兼容性问题windows应用商城里有款串口软件非常好用在Microsoft Store中搜索串口调试助手即可安装并使用...

2021-01-29 14:46:11 313

原创 Android- 一台手机安装多个同一项目apk

每个Android应用都有一个唯一的 ID , 类似com.example.demo系统通过应用ID 判断是否为同一应用在安装应用时,如果系统中已经存在相同的应用ID,则会覆盖安装所以需要在同一手机上安装多个同一项目的apk时需要修改应用ID要实现这个功能,可以使用以下方法:在build.gradle 中的 buildTypes 字段中使用 applicationIdSuffix这样就会在你的应用ID后面追加一段字符android { ... buildTypes {

2021-01-29 14:25:58 1032

原创 git同时支持多个远程仓库

Git 一个项目同时使用多个远程仓库有时我们为了方便管理,会需要将同一个项目同时发布到多个远程仓库中。如下是实现方法:多个仓库都需要push和pull在指定git服务器上创建一个新的git仓库执行 git remote add XXXX git@gitee.com:xxx/demo.git合并节点(新代码库要求是新的)git pull XXXX master --allow-unrelated-histories将本地分支推到新仓库git push XXXX master

2021-01-25 09:58:28 982

原创 git 常用命令

Git 常用命令官方:官网 https://git-scm.com/ProGit 官方中文建议多用 git statusGit常用命令图创建git init # 在当前目录新建一个Git代码库git init [project-name] # 新建一个目录,将其初始化为Git代码库git clone <url> # 下载一个项目和它的整个代码历史修改和提交git add <file>/<dir

2021-01-25 09:45:20 145 1

原创 NDK-预编译第三方库报错

使用NDK封装SeetaFace2时,发生了一个错误,找了很久bug, 记录一下android.mk文件include $(CLEAR_VARS) # 清除LOCAL_PATH以外的变量LOCAL_MODULE := SeetaFaceRecognizerLOCAL_SRC_FILES += libSeetaFaceRecognizer.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE :=

2020-12-25 16:34:31 261

原创 NDK-jni使用自定义类

在jni在使用自定义类需要注意几个关键点:javac生成jni头文件时要指定自定义类的位置获取到类、构造函数、字段的引用, 然后就可以进行取值或赋值下面举个例文件夹结构如下:jniDemo文件夹在c盘根目录下jniDemo/└── java └── com └── demo ├── FaceDetectJNI.java └── face └── FaceInfo.javaFaceI

2020-12-25 16:32:09 576

原创 NDK-生成JNI头文件

我们用c/c++写好的库,Java是没办法直接调用的,必通过JNI接口调用c/c++库jni接口需要使用javac命令生成javac -h <directory> demoJNI.java注: 在jdk10以前的老版本使用javah命令替代javac -hjni接口生成的步骤如下:在java层写好native方法demoJNI.javapackage com.deom;public class demoJNI { static { S

2020-12-25 16:30:31 431

原创 Android NDK

为了保密或者提高运行速度, 我们可以使用c/c++实现功能然后使用NDK构建代码生成库提供给Android使用首先来看看NDK到底是什么?Android NDKAndroid NDK 是一个工具集 可让您使用 C 和 C++ 等语言以原生代码实现应用的各个部分 对于特定类型的应用,这可以帮助您重复使用以这些语言编写的代码库 NDK在实际使用时是使用ndk-build脚本来进行编译的ndk-build脚本需要两个配置文件Android.mk 和 Application.mk

2020-12-25 16:28:32 74

原创 nRF52832开发记录----学习资源

学习Nordic BLE相关资源官网官方开发论坛,有官方人员回答问题https://devzone.nordicsemi.com/官方文档中心,非常全https://infocenter.nordicsemi.com/官方博客https://devzone.nordicsemi.com/nordic/nordic-blog/官方githubhttps://github.com/NordicSemiconductorhttps://github.com/NordicPlayg

2020-11-09 11:09:17 282

原创 nRF52832开发记录----代码读保护

当代码下载到芯片里后,可以使用工具将代码读出来如果不希望别人读取你芯片内的代码,那就需要在下载代码时添加读保护功能Nordic nRFConnect PC版本中的Hex下载工具没有读保护功能Nordic蓝牙芯片的读保护功能需要使用 nrfjprog 工具实现nrfjprog -f NRF52 --recovernrfjprog -f NRF52 --program xxx.hex --verifynrfjprog --rbp ALL上面操作分别为:解锁并擦除下载添加读保护...

2020-11-09 11:08:49 1290 2

原创 nRF52832开发记录----消息序列图

在Nordic协议栈操作中,操作流程给出了消息流程图,非常直观接合代码一起看将最大限度提高工作效率消息流程图在Noridc 文档中心https://infocenter.nordicsemi.com/协议栈版本不同会有些区别。以nRF52系列 S132协议栈为例:RSSI get sample...

2020-11-09 11:08:26 182

原创 nRF52832开发记录----SES注册

今天使用SES开发Nordic芯片,发现license快过期了,而注册入口不好找。特此记录注册地址 https://license.segger.com/Nordic.cgi填上相关信息即可参考:devzone

2020-11-09 11:07:36 552

原创 nRF52832开发记录----iOS蓝牙连接间隔时间

iOS对蓝牙连接参数有明确要求。之前项目中的连接参数不符合要求,通信过程中会自动断开。最新参数要求请查看 :https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf35.6 Connection ParametersThe connection parameter request may be rejected if it does not comply with all of these rules:- Blu

2020-11-09 11:04:16 1425

原创 nRF52832开发记录----DFU

DFU : Device Firmware Update 即固件升级DFU可分为两种:dual bank : 先接收后升级. 优点:升级失败可回滚 缺点:需要额外空间single bank : 边接收边升级. 优点: 节约空间 缺点:如果出错不能回滚版本最新SDK(v15.3.0)会根据当前代码空间,自动选择使用dual bank或single bankNordic 支持三种升级方式: UART, USB, BLENordic要实现DFU需要两个独立的代码:bootloade

2020-11-09 11:03:56 619

原创 nRF52832开发记录----pwm实现呼吸灯

Nordic的引脚是可以自由定义的。只有SAADC接口是固定的那几个引脚,数字引脚,PWM, I2C, UART, I2S都是可以自由定义的。1. 使用能PWM配置sdk_config.h,使能PWM#define NRFX_PWM_ENABLED 1#define PWM_ENABLED 1#define PWM0_ENABLED 1#define NRFX_PWM0_ENABLED 02. 实例化总共支持4个PWM,分别是PWM0, PWM1, PWM2, PWM3 .使用PWM0

2020-11-09 11:03:32 1563

原创 nRF52832开发记录----RTC超时逻辑导致死机

超时使用RTC计数器辅助实现但在实际使用中发现有时会出现死机现象现像:死机代码:// RTC频率: fRTC [kHz] = 32.768 / (PRESCALER + 1 )#if (0 == APP_TIMER_CONFIG_RTC_FREQUENCY) #define RTC_CNT_MS (33) // // 当分频为0 时, 1ms 对应的 RTC 计数值#else #error "undefine RTC_CNT_MS"#endif//

2020-11-09 11:02:06 1048

原创 nRF52832开发记录----RTC日历

nrf52832有三个 RTC协议栈使用了RTC0, APP_TIMER使用了RTC1我们可以利RTC2实现日历时钟配置及休眠实现比较关键RTC 配置rtc频率如下:f [kHz] = 32.768 / (PRESCALER + 1 )休眠noridc有两种休眠模式 System OFF 和 System ONSystem OFF 模式是深度休眠模式,将关闭cpu和所有外设System ON 模式可以关闭cpu后外设继续工作当使用RTC功能时只能使用System ON模式

2020-11-09 11:01:17 868

原创 nRF52832开发记录----低功耗休眠

Nordic nrf52832的电源管理有两种模式: System OFF 、System ONSystem OFF在此处模式下会进入深度休眠状态,cpu和外设将全部关闭,将功耗降至最低.休眠功耗会非常低:只有零点几微安将所有使用的外设关闭后调用sd_power_system_off()将进入System OFF状态在没有协议栈时调用 NRF_POWER->SYSTEMOFF = 0x1; 进入System OFF状态 唤醒System OFF模式只能被IO口唤醒The DE

2020-11-06 16:42:26 5891 2

原创 nRF52832开发记录----ble发送数据丢包

在发送大数据时,发现实际发送长度不对,数据没有发送完全。发送逻辑为:发送长度大于MTU时分包发送,第一次只发送MTU长度,待发送完成后接着发送剩余数据,每次最大发送MTU长度以下为实现:1. 封装发送函数发送长度不能超过MTU值void myBleNusDataSend(uint8_t *pDat, uint32_t dataLength){ uint16_t length = 0; uint32_t err_code; do{ lengt

2020-11-06 16:42:02 2192 1

原创 nRF52832开发记录----蓝牙抓包

在做BLE开发中,经常需要抓蓝牙通信包来分析。专业的蓝牙抓包工具非常昂贵,我们可以使用Nordic的开发板来进行抓包还可以使用nRF Connect APP进行简单抓包 1 硬件Nordic nRF52 开发板 PCA100402 软件Wireshark v2.4.6 以上 https://www.wireshark.org/Python v3.6 以上 https://www.python.org/downloads/nRF Sniffer for Bluetooth LE v3.x

2020-11-06 16:41:31 1800

原创 nRF52832开发记录----nRFConnect PC 不能添加app

现象:nRF Connect PC版打开后提示错误,导致无法添加或更新appError Unable to download laster app info:Unable to download apps list: Unable to download根据提示,手动访问 https://raw.githubusercontent.com/NordicSemiconductor/pc-nrfconnect-core/master/apps.json.提示不能访问,看来是网络访问问题 解决方法:

2020-11-06 16:41:08 1720

原创 nRF52832开发记录----强大的辅助软件 nRFConnect

nRF Connect是Nordic出品的通用蓝牙软件有移动版和PC版两种此软件功能非常强大,强烈建议安装下载nRF Connect for MobilenRF Connect for DesktopPC版本Connect使用简单,每个功能对应一个插件,安装对应插件即可。比如想烧录hex就安装Programmer插件就可以了下面针对手机版本nRF Connect进行一些使用技巧说明 1. 查看本机蓝牙相关参数nRFConnect可以查看本机蓝牙支持的特性2. nRFConnect

2020-11-06 16:40:22 3947 1

原创 nRF52832开发记录----sdk_config文件

Nordic BLE开发工程中,sdk_config.h 文件非常重要,当基于SDK例程增加功能时会需要对sdk_config.h进行修改,添加对应的宏进行配置这时可以从sdk_config.h模板文件中查看对应功能模块所需要的宏路径为: SDK\configSDK/└── config ├── nrf52810 │ ├── armgcc │ ├── config │ │ └── sdk_config.h │ └── ses ├─

2020-11-06 16:39:57 1328

原创 nRF52832开发记录----NFC做普通IO

nRF52 系列有些IO口有多个功能可选,如果不配置则使用默认功能。具体可查看芯片手册。NFC对应的IO口默认为NFC功能,如果要使用普通IO功能则必须手动配置为IO口。在IDE中预定义宏CONFIG_NFCT_PINS_AS_GPIOS则将IO口设置为NFC功能.如下图:...

2020-11-06 16:39:28 722

原创 nRF52832开发记录----使用内部32k晶振

低频晶振32.768KHz是蓝牙协议栈提供时间基准可以去掉外部低频晶振,使用内部RC, 软件上进行简单配置即可:注意,在同等条件下,使用内部RC要比使用外部晶振功耗上会多1uA左右//==========================================================// <o> NRF_SDH_CLOCK_LF_SRC - SoftDevice clock source. // <0=> NRF_CLOCK_LF_SRC_RC //

2020-11-06 16:31:46 3622

原创 nRF52832开发记录----使用RTT打印调试信息

开发时我们可以使用RTT来打印logRTT是SEGGER公司开发的用于嵌入式程序中与用户交互的实时终端。RTT搭配JLink的JLinkRTTViewer软件使用1. RTT将RTT源码移植到工程中即可实现RTT功能RTT源码使用ANSI C标准编写可以移植到任何嵌入式程序中RTT实现了一个简易的printf()函数SEGGER_RTT_Printf(),不需要堆RTT源码包含在JLink中,安装完JLink后就带有RTT源码Windows JLink源码在JLink安装目录下的Sample

2020-11-06 16:28:06 1162

原创 nRF52832开发记录----Nordic BLE 开发环境搭建

nordic支持三种IDE: KEIL, IAR, SES.SES跟Keil非常像,是Segger公司为Nordic芯片量身打造的,对Nordic用户来说,永久免费。Segger embedded studio开发环境搭建官方文档:Keil MDK开发环境搭建官方文档: 1. SES安装SES安装包 https://www.segger.com/downloads/embedded-studio/2. nRF Command Line Tools安装nRF5x command line t

2020-11-06 15:10:10 2887

原创 Ubuntu make 及多版本JDK安装与切换

环境:Ubuntu 14.04.3 LTS一 安装android开发环境ubuntu 15 提供了 ubuntu make,使用它可以很方便的安装各种开发环境, 使用它安装Android 开发环境非常方便。https://wiki.ubuntu.com/ubuntu-make/安装umake , 在14.04.3版本中没有提供umake,所以需要单独安装

2015-12-13 17:55:16 1983

空空如也

空空如也

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

TA关注的人

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