自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 经典蓝牙安全机制

BR/EDR中使用的安全机制经过了三个阶段的规范的多个版本的发展,分别是:Legacy,Secure Simple Pairing和Secure Connections。encryption, authentication 和key generation安全算法和这三个阶段的关系如下:Legacy当两台设备没有common link key时,当使用Legacy Pairing或Secure Simple Pairing时应当生成Kinit。Kinit基于PIN, random number

2022-03-27 23:32:45 1345 1

原创 BLE LL Control Procedure

LLCP Overview  LLCP(Link Layer Control Protocol),链路控制协议用于对链路间的相关参数或状态进行协商和控制。其包括诸如链接参数更新,加密等流程(Procedure),Procedure即LL Control PDU的交互组成的流程或步骤。如右表所示为Spec 4.0至5.0的所有Procdure 。Link Layer Control  Link Layer Controller Procedure主要是对LL Control PDU交互的描述,Spec

2021-04-18 00:43:03 422

原创 BREDR FLOW STOP介绍

FLOW蓝牙中的FLOW Control主要由3个部分内容,分别时Packet Header FLOW,Payload Header FLOW以及L2CAP的Flow Control Mode。这里简单介绍一下前两种。Packet Header FLOWThe FLOW bit is used for flow control of packets over the ACL logical transport.When the RX buffer for the ACL ..

2021-03-13 23:50:00 428

原创 BLE测试模式

BLE-Direct Test Mode该模式用于控制DUT设备和反馈报告给测试者。1)DTM setup有两种方式建立DTM,HCI即带流控的uart(4-Wire UART),2-UART方式暂时不介绍(Version 5.2 | Vol 6, Part F, Section 3)2)相关指令HCI Command HCI_LE_Receiver_Test[v1] 0x001D Normal HCI_LE_Receiver_Test[v2] 0x0033 Norm..

2020-08-09 00:46:07 3339

原创 BR/EDR测试模式

BT-Test Mode设备在BR/EDR Test mode将不能支持正常操作,BR/EDR的测试模式分为transmitter test和loopback test以及pause test。0)Test SetupBR/EDR 测试环境的建立主要由DUT和tester两个角色构成。一般tester作为master并且主要由master来进行控制。通过 Test procedure相关的LMP command来进行控制。2)loopback test DUT传输接收到的pa...

2020-08-09 00:38:48 981

原创 关于emWin显示汉字出现“miss closing quote”的错误

使用emWin显示汉字的时候常用的两种基本方法:(具体操作方法参看手册或百度) 1. FontCV的使用 2. 外部存储器其中关于FontCV使用时遇到了这么一个问题(安富莱的教程) 1. 通过extern声明要调用的字体; 2. 使能UTF-8解码格式; 3. 使用相关的汉字字体。 4. 运行程序前,一定要保证这个MainTask.c文件的编码格式是UTF-8。在这里第四点的...

2018-04-25 16:58:58 3628 2

原创 关于MINI2440的QT的安装

采用MINI2440的提供的arm-qte-4.8.5编译与安装QtE-4.8.5,#cd /opt/FriendlyARM/mini2440/linux/arm-qte-4.8.5#./build.sh根据机器配置不同,会有不同的编译时间,请耐心等待,当顺利执行完毕,再运行 mktarget 脚本,将会从编译好的目标文件目录中,提取出必要的 QtE-4.8.5库文件和可执行二进制示...

2018-03-08 16:26:54 802

转载 STM32中断一些概念(主要是外部中断)

主要参考:startup_stm32f10x_hd.s, stm32f10x_exti.h, stm32f10x_exti.c,另外,这里说的外部中断是相对于M3内核之外的,主要是外设中断如:如I/O口相应的外接设备中断,USART、Timer等其它本身固件中断。      对于 cortex_m3 内核所支持的 240 个外部中断,这里使用了“中断通道”这个概念,因为尽管每个中断对应一个外围设备...

2018-03-08 11:28:14 2617 1

转载 Linux中的中断处理机制

  转自:http://www.uml.org.cn/embeded/201304021.asp  与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API request_irq()和free_irq(),request_irq()的原型为:    int request_irq(unsigned int irq,void (*handler)(int irq, void *dev_i...

2018-03-08 11:27:23 1218

转载 Qt、Qte、Qtopia、Qvfb、Qpe概念区别

转自:http://www.veryarm.com/937.htmlQT一般说的Qt其实是泛指Qt的所有桌面版本,例如:Qt/X11(Linux下),Qt Windows(windows下)以及Qt Mac等。运行于一般PC桌面环境的应用程序开发平台。简单理解就是,我们开发过程是在PC桌面环境(Windows,Mac或Linux等)中,而开发出来的程序也是在PC中运行的。Nokia 在...

2018-03-08 11:26:49 727

原创 大话设计模式(一)

Chapter1 简单工厂模式聚合表示一种弱的“拥有”关系,体现的是A对象包含B对象,但B对象不是A对象的一部分。 合成表示一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。 面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。Chapter2 策略模式策略模式(Strategy):定义...

2018-03-08 11:26:34 225

原创 EPC-6708-L开发板无法修改/etc/rc.d/rc.conf

这里的话,先看看用户手册3.3修改文件系统的描述 用户手册上说修改/etc/rc.d/rc.conf文件来永久改变IP地址和设置程序开机自启动,但是在修改文件系统一节明确说到,其中/var,/tmp,/etc挂载为ramfs,放在这些目录下的文件在M6708掉电后会消失,下次重启后会回复默认值。这就有点自相矛盾了。解决办法: 1. 可以使用bash的环境配置文件/etc/profile...

2018-03-08 11:26:23 740

原创 Qt creator 快速入门(一)

第8章 界面外观调色板QPalette类包含了部件各种状态的颜色组。一个调色板包含3种状态: - 激活颜色组QPalette::Active,用于获得键盘焦点的窗口; - 非激活颜色组QPalette::Inactive,用于其他的窗口; - 失效颜色组QPalette::Disabled,用于一些原因而不可用的部件。Qt样式表 Qt样式表的术语和规则与HTML CSS(Casca...

2018-03-08 11:26:14 4466

原创 emWin对话框接收不到自定义消息

在使用自定义消息时,使用GUI_CreateDialogBox()创建对话框后,无法接收到发送的自定义消息。 解决方法: 1. 创建页面成功后,获取到句柄,再调用WM_SetCallback()设置回调函数,则能成功接收到消息。 2. 需要先调用WM_GetClientWindow()得到客户端窗口的句柄,然后把消息发送给这个句柄。如下:void _SendKeyvalue(ch...

2018-03-04 13:05:19 2592 2

原创 C++ GUI Programming with Qt4 (四)

Chapter 5.创建自定义Qt窗口部件5.1 自定义窗口部件一个简单而直接的解决方法就是对相关的窗口部件类进行子类化并且使它能够满足我们的需要。可以遵从一个相同模式:选择一个合适Qt窗口部件,对它进行子类化,并且通过重新实现一些虚函数来改变它的行为即可。5.2 子类化QWidget通过对现有窗口部件的组合构建而成的自定义,窗口部件通常都可以在Qt设计师中开发出来:

2018-01-23 17:08:24 382

原创 PrepareCtrl(int nIDC)中出错

参考:http://blog.csdn.net/dadalan/article/details/5326367原因是为一个控件进行变量绑定,后来觉得这个控件没用了,就直接在对话框上把控件删除了,而这里的关联代码却没删除。这里提供一个例子给大家参考。HWND CDataExchange::PrepareCtrl(int nIDC){ ASSERT(nIDC != 0); A

2018-01-16 17:21:25 860 1

原创 MFC中UpdateData()使用

UpdateDate()只有一个参数,默认参数为TRUE。其作用如下: 用于初始化对话框数据和接受合法的对话框数据。(Call this member function to initialize data in a dialog box, or to retrieve and validate dialog data.)BOOL UpdateData( BOOL bSaveAndVa

2018-01-15 10:15:31 565

原创 VS2013无法编译MFC程序

错误提示: error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.

2018-01-10 11:42:10 882

原创 C++ GUI Programming with Qt4 (三)

Chapter 4 Implementing Application FunctionalityThe central area of a QMainWindow can be occupied by any kind of widget. Here’s an overview of the possibilities:1.Use a standard Qt Widget.2.Use

2018-01-09 14:27:30 278

原创 Windows上安装Qt 4.8.6

分享一个Windows上的安装Qt方法,版本是4.8.6,仅供参考(所有安装,建议不要出现中文目录)。1.下载4.8.6版本的Qt https://download.qt.io/archive/qt/4.8/4.8.6/2.下载一个Qt creator https://download.qt.io/archive/qtcreator/2.5/3.双击第一步下载的qt-opensource-win

2017-12-25 19:18:11 651

原创 进程线程例子

fork(),vfork(),pthread_create(),pthread_join()简易例程

2017-12-14 10:31:01 525

原创 C++ GUI Programming with Qt4 (二)

Chapter 3. Creating Main Windows关键词:动作(Action),主窗口(MainWindow),QT资源机制(QT resource mechanism),非模态(modeless),模态(modal),单文档(SDI),多文档(MDI),程序启动画面(splash screen)。3.1 Subcalssing QMainWindow图形用户界面(G

2017-12-11 17:31:54 439

原创 C++ GUI Programming with Qt4 (一)

Chapter 1. Basic Qt1.1 Hello QT关键词:槽(slot),信号(signal),布局(layout),窗口部件(widget)。(安装的方法,和过程此处省略)使用命令行编译QT工程时:1 . 进入hello目录,qmake -project 生成一个与平台无关的项目文件hello.pro2 . qmake或者qmake hello.pro生成

2017-12-04 21:09:34 1072

转载 MarkdownPad2 Pro 注册码

MarkdownPad 支持多种 Markdown 解析引擎,包括 标准 Markdown 、 Markdown 扩展 (包括表格支持) 以及 GitHub 风格 Markdown 。有了标签式多文档界面、PDF 导出、内置的图片上传工具、会话管理、拼写检查、自动保存、语法高亮以及内置的 CSS 管理器,您可以随心所欲地使用 MarkdownPad。注册信息邮箱地址: Soar360@liv

2017-11-14 15:02:07 1195

原创 块设备驱动

块设备是以数据块为访问单位访问数据的设备,一般每个块的大小为512字节的倍数(一个扇区的大小也是512字节),可以随机访问数据。对应的字符设备是以1个字节为访问最小单位的,只能顺序访问数据!Mapping Layer: 计算出文件文件在磁盘上的实际位置,将对文件的访问转换成对磁盘扇区的访问。Generic Block Layer:Li

2017-11-11 12:36:05 281

原创 设备驱动模型中设备的init_name成员

现象是:依次加载了总线bus,设备device,驱动driver,在加载驱动时候出现了segmentation fault。环境条件:采用的是国嵌的教材(可能是教材比较古老了吧,导致出现这样问题),内核版本使用的是2.6.32.2。最后查找原因是由于空指针导致了在strncmp产生了段错误。

2017-11-02 22:11:38 788

转载 Linux设备驱动模型

转自:http://blog.csdn.net/fivedoumi/article/details/50913615设备驱动模型的作用:1)设备驱动模型实现uevent机制,调用应用层的mdev来自动创建设备文件。2)设备驱动模型通过sysfs文件系统向用户层提供设备驱动视图。         设备是具体的一个个设备,在/sys/devices/是创建了实际的文件节点。而其他目录,

2017-11-02 11:02:00 206

原创 Linux内存管理子系统

Linux操作系统采用虚拟内存管理技术,每个进程都有独立的进程地址空间,空间大小为3G,不但起到保护操作系统的作用,而且用户程序可使用比实际物理内存更大的地址空间。Linux将4G的虚拟内存地址空间划分为两个部分——用户空间(0~0xBFFFFFFF)和内核空间(0xC000000~0xFFFFFFFF),用户一般只能访问用户空间,通过系统调用可访问内核空间。用户空间对应的进程空间可变,每当进

2017-10-27 15:19:54 289

原创 计算数字二进制中有多少个1

计算数字二进制中有多少个1int fuc(unsigned int x){ int countx; while(x) { countx++; x = x&(x-1); } return countx;}

2017-10-26 10:37:02 694

转载 Linux内核中的进程上下文和中断上下文

转自:http://www.cnblogs.com/reality-soul/p/6377137.html内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的 级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别

2017-10-25 11:23:43 328

原创 man查询括号中的数字含义

当我们在使用man查询命令时会发现命令后面会有一个数字,如ls命令后面的1,shutdown后面的8。LS(1) User Commands LS(1)NAME ls - list directory contents...... shutdown(8)

2017-10-23 23:13:35 1193

原创 Linux设备驱动学习(一)

这段时间学习了关于设备驱动的知识,这里给自己做个总结。驱动分类:字符设备驱动,网络接口驱动,块设备驱动。驱动程序的安装方法:模块方法(insmod,rmmod),编译进内核。Linux用户程序通过设备文件来使用驱动程序操作字符设备和块设备。主设备号用来反映设备的类型,此设备号用来区分同类型的设备。一般的流程是在PC上写好驱动程序,编译出模块之后拷贝到目标开发板上/lib/modul

2017-10-17 20:12:38 377

转载 printk打印等级

默认等级: cat /proc/sys/kernel/printk 7 4 1 7 一次性修改等级: echo 5 4 1 7 > /proc/sys/kernel/printk例子: 假设当 /proc/sys/kernel/printk  中的打印等级为 4 4 1 7时  printk(KERN_EMERG “KERN_EMERG\n”);  printk(KERN_ALER

2017-10-17 12:34:44 661

转载 autoconf使用

1、 autoscan  autoscan是用来扫描源代码目录生成configure.scan文件的。autoscan可以用目录名做为参数,但如果你不使用参数的话,那么autoscan将认为使用的是当前目录。autoscan将扫描你所指定目录中的源文件,并创建configure.scan文件。2、 configure.scan  configure.scan包含了系统配置的基本选项,里面都是一些宏定

2017-10-12 18:00:29 434

转载 Ubuntu 安装之后不能连WIFI

转载:http://www.cnblogs.com/lwyeric/p/4989169.html解决方案:关掉802.11n的支持就能连了,可能是04年的驱动对11n的支持跟现在有些厂商有些bug了。终端运行sudo gedit /etc/modprobe.d/iwlwifi.conf加上这句关闭802.11n的支持,网速会有限制54Mbps(802.11g模式),并不影响使用(除非你家的网络超过5

2017-10-11 16:41:20 918

原创 C51单片机测频出现负值

继之前做课设无意中测试出个Bug,个人代码问题,仅供参考。现象如下:配置定时器0中断定时20ms一次进入中断,定时器1中断外部计数1000次。当测试50KHz的时候LCD1602上出现了一个负值,别的频率都是正确的。于是开始如下的尝试:1) 分析一下首先我的频率变量定义的是unsigned long类型,所以应该是在转换字符出了问题,我使用的是库函数sprintf,发现是输出格

2017-10-10 22:10:43 1474

转载 SPI总线的4种工作模式

SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。    SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为

2017-10-10 19:14:26 13341

转载 Nandflash 和 Norflash 启动

转自:http://blog.csdn.net/u012582664/article/details/51767306 nand flash:适合大容量数据存储,类似硬盘; nor flash:适合小容量的程序或数据存储,类似小硬盘; sdram:主要用于程序执行时的程序存储、执行或计算,类似内存。 S3C2440的启动时读取的第一条指令是在0x00上,分别为nand flash和nor

2017-09-29 18:45:00 377

原创 51单片机测频

出于课设需要,用51单片机制作一个频率计,输入信号为标准信号,基本要求100-100KHz,发挥要求10-500KHz,误差小于1%。我用的单片机是STC12C5A60S2,晶振12MHz,测频方法有高频测频法,低频测周法。这里推荐一个工具–单片机小精灵。方案一: 采用定时器中断和外部中断,外部中断计数,定时器中断定时1秒,1秒内测到的脉冲数(或下降沿数)即测到的频率。(此方法测不了太高的

2017-09-26 20:15:06 9435 1

转载 ADS1.2无法卸载干净

安装ADS1.2的时候出现安装失误的情况想要卸载之后再从新安装,但是一直弹出Modify, Repair,Remove的界面,Modify的时候变成装到C盘的windows文件夹下,Remove又没有用,强迫症表示真的受不了!! 网上参考了一些方法: 1、删除注册表 HKEY_CURRENT_USER\SOFTWARE\ARM Limited\ARM Developer Suite HK

2017-09-25 22:33:32 5745 1

51单片机调试小精灵。

51单片机 定时器,波特率,中断表,指令快速设置和查询,通过设置相应的晶振既可以计算,还可以计算延时。

2017-09-26

空空如也

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

TA关注的人

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