- 博客(37)
- 收藏
- 关注
转载 nordic之Flash访问模块FDS常见问题
大家在使用FDS模块时,经常碰到的问题有如下几种:FDS不支持掉电保护,所以在Flash操作过程中出现了掉电,FDS行为将未知 OTA的时候,新固件的FDS page数目一定要等于老固件的FDS page数,否则将出现不可知行为 fds_record_write或者fds_record_update后,强烈建议回读该记录,以确保记录的确write或者update成功 忘了给参数清0。Nordic提供的API输入参数很多都是结构体变量,这些变量使用之前,记得一定要通过memset先清0。如果忘了清0
2022-03-22 16:09:07 906
转载 BLE之 扩展广播介绍
蓝牙5.0把广播信道抽象为两类,一种叫主广播信道(primary advertisement channels),工作在37,38,39三个信道中,蓝牙4.0的广播使用的都是主广播信道,另一种叫第二广播信道(Secondary Advertising Packets),工作在0–36信道中,这是蓝牙5.0新增的。如下图所示,对比4.0广播包新增了许多类型的广播包,其中ADV_EXT_IND以及所有channel处于Secondary Advertising的均为新增的广播包类型。
2022-01-24 11:33:50 4516
转载 BLE连接过程分析及异常断开0x3e错误原因分析
我们知道BLE通信过程是建立在连接基础之上的,按角色不同可以分为蓝牙主设备、蓝牙从设备,也叫中央设备和外围设备。以下简称为主机和从机。一次蓝牙通信,通常由主机发起,从机响应。我在调试蓝牙主机程序的过程中,发现经常会出现“秒断”的现象,即主机连接上从机,然后立马又断开了,断开原因是0x3e。经过查找资料和抓包分析,终于搞清楚了发生这个现象的原因。 先看下BLE核心规范《 Core_v4.2》中对0x3e的断开原因是怎么说明的,在文档的385页可以找到相关描述: 从字面意思...
2021-07-21 10:34:51 2548
转载 解决STM32定时器初始化后直接进入中断问题
解决STM32定时器初始化后直接进入中断问题STM32初始化完毕后第一次启动定时器直接进入中断,原因是定时器的寄存器中断标识没有被清理掉。如果使用标准库,先用TIM_ClearITPendingBit(TIM1, TIM_IT_Update)清除中断标记,然后使能定时器中断,最后启动定时器;如果使用HAL库,在MX_TIMx_Init函数后紧跟着__HAL_TIM_CLEAR_IT(&htimX, TIM_IT_UPDATE)以此来清除中断标识位。...
2020-11-19 14:13:53 5338 2
原创 freeRTOS 移植到nRF52832 SDK15.3.0 - 环境Keil5
目的:记录FreeRTOS移植过程。把FreeRTOS移植到nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_uart工程,在keil上移植。本身SDK中有一个工程可以做参考:nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_hrs_freertos。1,把nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_hrs_.
2020-09-29 14:07:07 1842 1
原创 Nordic修改设备名
uint32_t err_code;ble_gap_addr_t addr; err_code = sd_ble_gap_addr_get(&addr); APP_ERROR_CHECK(err_code);for(int i = 0;i<BLE_GAP_ADDR_LEN;i++){ printf("%02X",addr.a...
2020-04-13 14:07:11 320
转载 深入浅出低功耗蓝牙(BLE)协议栈
BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?协议栈框架一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。如上图所述,要实现一个BLE应用,首...
2020-04-09 15:03:17 544
原创 stm32之ADC多通道连续采集
CubeMx配置1、CubeMx选择多个ADC通道2、设置通道外设3、打开ADC的DMA,并打开中断4、生成工程在main.c文件中添加uint16_t aResultDMA[4]; //存放采集到的ADC数据//在main()函数中添加 /* ### - 2 - Start calibration #############...
2020-03-26 12:07:24 9507
原创 STM32之串口DMA中断
定义变量uint8_t aTxBuffer[100]; //存放要发送的字符串uint8_t aRxBuffer[100]; //存放接收到的字符串uint8_t usRxLen; //实际接收到的数据长度uint8_t Rx_flag; //接收到数据时置1在main函数中清idle标志位,并且开中断HAL_UART_Re...
2020-03-25 17:18:42 1450
原创 linux板子如何判断网络连接是否正常
bool NetlinkStatus::GetNetStat(){ char buffer[BUFSIZ]; FILE *read_fp; int chars_read; bool ret; memset( buffer, 0, BUFSIZ ); read_fp = popen("ifconfig eth0 | grep RUNNING", ...
2019-10-28 14:49:52 1098
转载 C语言中lseek()函数和fseek()函数的使用详解
C语言lseek()函数:移动文件的读写位置头文件: 1 #include <sys/types.h> #include <unistd.h> 定义函数: 1 off_t lseek(int fildes, off_t offset, int whence); 函数说明:每一个已...
2019-10-26 15:17:33 620
转载 QT对话框中show和exec的区别
QDialog的显示有两个函数show()和exec()。他们的区别在参考文档上的解释如下:show():显示一个非模式对话框。控制权即刻返回给调用函数。弹出窗口是否模式对话框,取决于modal属性的值。exec():显示一个模式对话框,并且锁住程序直到用户关闭该对话框为止。函数返回一个DialogCode结果。在对话框弹出期间,用户不可以切换同程序下的其他窗口,直到该对话框被关闭。从...
2019-10-10 17:18:54 507
原创 QT学习之TCP、UDP
TcpClient:1、需要的槽函数void frmTcpClient::initForm(){ isOk = false; tcpSocket = new QTcpSocket(this); connect(tcpSocket, SIGNAL(connected()), this, SLOT(connected())); connect(tcpSock...
2019-09-30 10:06:07 321
转载 STM32笔记:读写内部Flash
stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RAM也不同。Flash中的内容一般用来存储代码和一些定义为const的数据,断电不丢失,RAM可以理解为内存,用来存储代码运行时的数...
2019-09-24 10:00:14 550
原创 初学html之——所有css文本属性
属性 描述 color 设置文本颜色 direction 设置文本方向。 letter-spacing 设置字符间距 line-height 设置行高 text-align 对齐元素中的文本 text-decoration 向文本添加修饰 text-indent 缩进元素中文本的首行 text-shadow 设置...
2019-09-18 17:36:30 128
原创 初学html之——速查列表
HTML基本文档<!DOCTYPE html><html> <head> <title>文档标题</title> </head> <body>可见文本</body></html>基本标签<h1>最大的标题</h1...
2019-09-18 16:08:49 360
原创 Qt获取本机的ip地址、MAC地址
方法1:获取ip地址:QString getHostIpAddress(){ QString strIpAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // 获取第一个本主机的IPv4地址 int nListSize = ipA...
2019-09-09 13:40:10 1936
转载 Qt5 对xml文件常用的操作(读写,增删改查)
项目配置pro文件里面添加QT+=xmlinclude <QtXml>,也可以include <QDomDocument>项目文件:.pro 文件QT += core xml QT -= gui TARGET = xmltestCONFIG += consoleCONFIG -= app_bundle T...
2019-08-12 20:11:22 740
转载 完全自定义QMessageBox样式
1、综述Qt大佬:一去、二三里的自定义QMessageBox上述链接的窗体继承于大神的自定义Widget,我这里稍作修改,继承于QDialog方便了使用,这里可以任意实现QMessageBox的样式而不受系统约束(设置setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);后可自定义标题栏)自定义QMessageBox窗体结构示意:...
2019-08-07 11:14:48 6338 3
转载 ubuntu14.04安装arm版QT4.8.6(QtEmbedded-4.8.6-arm)并移植到开发板
本人在编译QT库时遇到了很多问题,偶然发现遇到的问题在此博客中都有提及。参考博客:https://blog.csdn.net/hhhhh89/article/details/53888523准备:下载qt-everywhere-opensource-src-4.8.6.tar.gz并复制到ubuntu目录中1、进入存放qt源码的目录解压源码包tar xzvf qt-everywh...
2019-08-06 09:38:42 1033
原创 QT arm播放音频
void SetEquiptestQualityVoice::on_tableWidget_voice_itemDoubleClicked(QTableWidgetItem *item){ QString soundaddr = item->text(); QString soundpathtemp = currpath + soundaddr; SoundPla...
2019-08-02 11:40:56 901
原创 显示、隐藏鼠标箭头
显示鼠标箭头:QWSServer::setCursorVisible(true);隐藏鼠标箭头:QWSServer::setCursorVisible(false);
2019-08-02 11:32:24 2616 2
原创 QString转换QByteArray(char*)时中文问题解决方案
QString To Char* :char* TT::StringToChar(QString str){ char *chStr = NULL; QByteArray ba = str.toLocal8Bit(); chStr = (char *)malloc(ba.length() + 1); memset(chStr,0,ba.length());...
2019-07-30 08:57:46 1045
原创 QT获取网页上的信息(json格式)
在.pro文件中添加QT += network#ifndef MYHTML_H#define MYHTML_H#include <QWidget>#include <QNetworkRequest>#include <QNetworkReply>#include <QNetworkAccessManager>#include...
2019-07-30 08:47:57 705
原创 QT判断指定目录下的文件类型
判断是否为一个文件:QFileInfo fileinfo(文件绝对路径);fileinfo.isfile();这里返回一个布尔值,如果这个对象指向的是文件或者是文件符号,那么返回真,若不是,比如是个目录,那么就返回假.同理,判断是否为一个文件夹:QFileInfo fileinfo(文件绝对路径);fileinfo.isdir();获取文件后缀名:QString fil...
2019-07-26 14:16:24 1753
原创 QT设置背景透明度
1.将页面UI设置成栅栏布局。2.将栅栏变形为QFram,再改变样式表background-color: rgba(252,252,252,70%);//70%为透明度3.将页面内控件改变样式表,设为透明background-color: rgba(200,200,200,0);...
2019-04-30 17:05:51 5692
转载 ubuntu snmp 安装与移植
一、net-snmp-5.7.3配置编译安装1.确定Ubuntu系统在arm检查编译环境下。2.下载net-snmp-5.7.3源码包net snmp的源码包可以到 net-snmp官网上去下载。也可以到sourcefroce(http://downloads.sourceforge.net)上去下载。3.解压net-snmp源码包,并进入到net-snmp-5.7.3文件夹。可...
2019-04-23 10:16:32 2553 1
转载 Qt中Spinbox,DateTimeEdit等控件样式表:箭头在左右两边QSS代码示例
/*spinbox 抬起样式*/QDateTimeEdit::up-button,QTimeEdit::up-button,QDoubleSpinBox::up-button,QSpinBox::up-button {subcontrol-origin:border; subcontrol-position:right; image: url(:/image/add.png); widt...
2019-04-13 15:41:43 2720
原创 Linux 文件拷贝功能
//选择需要copy的文件void setnavigation::on_btn_udask_filechoose_clicked(){ QString temp_udask_filenames; QStringList udask_target_filenames =QFileDialog::getOpenFileNames(this,tr("udask_filenamech...
2019-03-30 15:33:02 196
原创 QTableWidget详细使用(日志显示——执行Linux命令,在tablewidget中显示)
1.初始化tableWidgetvoid setnavigation::init_log_list(){ int width = ui->tableWidget_log_list->width(); //设置3列 ui->tableWidget_log_list->setColumnCount(3); //设置列宽 ui-&g...
2019-03-30 15:28:18 861
转载 QT给控件QLineEdit添加clicked()事件方法
做Qt开发的会知道QLineEdit是默认没有clicked事件的,但是Qt有很好的一套信号/槽机制,而且Qt是基于C++面向对象的思想来设计的,那么我们就很容易通过自己定义一些类,重写QLineEdit的一些方法去实现没有的方法,比如clicked事件.本人就以QLineEdit 添加clicked事件来说明. Qt里面有个关键字emit,这个关键字意思就是触发一个信号,具体emit更详细...
2019-03-21 17:27:01 6337
原创 Qt5.9+tslib1.4移植
先移植TSLIB1、安装前的准备工作:再root模式下安装下面软件。# apt-get install autoconf# apt-get install automake# apt-get install libtool2、下载tslib源码3、配置# ./autogen-clean.sh# ./autogen.sh# echo "ac_cv_func_mall...
2019-03-01 09:48:31 1843
转载 QT之文件读写操作
IO操作的主要函数接口打开设备:bool open(OpenMode mode)读取数据:QByteArray read(qint64 maxSize)写入数据:qint64 write(const QByteArray & byteArray)关闭设备:void close()IO操作的本质是连续存储空间的数据读写QT中IO设备的继承类图:QFile Cl...
2018-12-29 15:08:10 1178
转载 QApplication类参考
主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 QApplication类参考QApplication类管理图形用户界面应用程序的控制流和主要设置。 详情请见……#include <qapplication.h>继承了QObject。被QXtApplication继承。所有成员函数的列表。公有成员 QAppli...
2018-12-28 16:13:25 313
转载 QApplication的用法
QApplication管理GUI程序的控制流和主要设置。QApplication包含窗口系统和其他来源处理过和发送过的主事件循环。它也处理应用程序的初始化和收尾工作,并提供对话管理。QApplication可以对系统和应用的大部分设置项进行设置。对于用Qt写的任何一个GUI应用,不管这个应用有没有窗口或多少个窗口,有且只有一个QApplication对象。而对于用Qt写的非GUI应用...
2018-12-28 15:56:10 44417 2
转载 Qt之QFileInfo
QFileInfo的几个构造函数:QFileInfo()QFileInfo( const QString & file )QFileInfo( const QFile & file )QFileInfo( const QDir & dir, const QString & file )QFileInfo( const QFileInfo &am...
2018-12-28 14:05:31 299
转载 Qt之Qprocess
QProcess,可用于完成外部程序,并与之交互通信。一、启动外部程序的两种方式1)一体式:void QProcess::start(const QString & program,const QStringList &arguments,OpenMode mode = ReadWrite) 外部程序启动后,将随主程序的退出而退出。2)分离式:void QProc...
2018-12-28 11:30:05 480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人