学习记录
学习记录
莫邪博客
工作于嵌入式单片机行业,熟悉使用C/C++语言、STM32/51单片机等芯片,熟悉在ARM/linux等多种环境下开发应用程序,在蓝牙/WIFF有相关工作经验,会一些简单的C#界面编写
展开
-
【STM32修改串口波特率】
这个寄存器是一个无符号16位寄存器,计算公式为:USART_BRR = ((USART_APBCLK / 16) - 1) / baud_rate。USART模块提供了多个寄存器来设置波特率,其中关键的寄存器包括BRR(波特率寄存器)和USART_CR1(控制寄存器1)。根据你的应用需求,可能还需要在USART_CR1寄存器中设置USART_MODE(波特率模式)位。在USART_CR1寄存器中,设置USART_FLAG_TXE(发送数据就绪标志)和USART_CR1_USBS位(波特率发生器使能)。原创 2024-06-28 11:41:11 · 1659 阅读 · 0 评论 -
蓝牙4.0、4.2、5.0、5.1、5.2、5.3速度分别是多少
高速模式,蓝牙4.0-4.2都为24 Mbit/s,蓝牙5.0-5.1速度48 Mbit/s。低速,蓝牙4.2为1-3Mbps,5.0增加了125k/1M/2Mbps。蓝牙技术系统中的底层硬件模块由基带、跳频和链路管理。其中,基带是完成蓝牙数据和跳频的传输。无线调频层是不需要授权的通过2.4GHz ISM频段的微波。数据流传输和过滤就是在无线调频层实现的,主要定义了蓝牙收发器在此频带正常工作所需要满足的条件。链路管理实现了链路建立、连接和拆除的安全控制。原创 2024-05-13 10:48:30 · 11699 阅读 · 3 评论 -
【蓝牙】手机和PC蓝牙HCI LOG抓取方法
进入应用程序—>设置—>关于手机—>软件信息,点击版本号7次,打开开发者模式,进入“开发者选项”菜单,点击“启用蓝牙HCI监听日志”并设置“启用”,重启手机或开关飞行模式,尝试复现问题,问题复现后,进入拨号界面*#9900#,然后点击RUN DUMPSTATE/LOGCAT选项并等待,等待结束后,按“COPY TO SDCARD(INCLUDE CP RAMDUMP)”,将手机连接到PC并找到“log”文件夹并压缩,log\bluetooth\btsnoop_hci_xxxxxxxx.cfa。原创 2024-05-07 16:56:04 · 1724 阅读 · 0 评论 -
giee 添加公匙 流程记录
在文件夹下右击鼠标-选择Git Bash Here 打开Git命令行,通过浏览器获取仓库地址,页面中点击仓库首页克隆按钮,点击通过SSH Clone项目的复制链接按钮,得到clone地址,在命令行输入 git clone 复制的ssh clone链接。3.点击右上角个人头像-点击设置菜单-点击左侧SSH密钥,在密钥输入框中粘贴复制的内容,点击添加密钥按钮完成公钥的添加。安装完成后,还需要进行最后一步配置,在终端中输入以下命令来设置自己的姓名和邮箱,以后每一次提交都将以这个标识你的身份。原创 2023-12-17 00:33:15 · 294 阅读 · 0 评论 -
UNUSED()函数的作用
上面程序中,这个程序的主要功能是重构paint函数,我们看到了在这个函数的最开始,存在两处UNUSED(),这两处的功能是防止编译器发出警告,警告option与widget两个变量没有调用,当加入这个函数时,编译器就不会再产生warning告警,避免编译时候警告过多。UNUSED()函数在程序中的作用,就如它所代表的英文一样,unused,即无用的意思。即UNUSED()函数在程序中没有实质性的作用,用来避免编译器警告。以上就是UNUSED()函数的介绍,只要见过一次,这个函数就不会在产生疑惑。原创 2023-07-08 15:32:06 · 2050 阅读 · 0 评论 -
[USB]键盘数据格式以及按键键值
–bit4: Right Control是否按下,按下为1。|–bit0: Left Control是否按下,按下为1。|–bit1: Left Shift 是否按下,按下为1。|–bit2: Left Alt 是否按下,按下为1。|–bit5: Right Shift 是否按下,按下为1。|–bit6: Right Alt 是否按下,按下为1。|–bit7: Right GUI 是否按下,按下为1。第一列10进制键值,第二列16进制键值,第四列是按键。原创 2023-02-23 19:57:09 · 1033 阅读 · 0 评论 -
【HID基础知识】
每个蓝牙HID终端设备(如键盘)都会有它自己的输入控制处理器,该控制器采集用户的输入信号,并转换成某种特定的代码传送给它的HID主机(如PC、PDA等)。蓝牙HID 是属于蓝牙协议里面的一个profile, 不管在蓝牙2.0 2.1 3.0还是4.0,5.0的蓝牙中 ,都有HID , 而且在4.0以上协议中还多了一个HOG (HID OVER GATT)也就是低功耗HID,涉及的是蓝牙4.0以上的BLE(bluetooth low en)技术。HID规范运行在蓝牙的L2CAP协议上,并基于GAP规范。原创 2023-02-23 15:55:06 · 2567 阅读 · 0 评论 -
iap2中文翻译
57.2每个iAP2连接都始于通过受支持的传输方式在附件和设备之间建立连接。该链接协议提供了一种与传输无关的机制,用于可靠和有序地交付属于一个或多个iAP2会话的数据包化数据。该协议还可在每个连接的基础上进行配置,并可以在任何特定的传输和附件使用配置文件上被优化为最佳性能。某些协议特性有助于实现这些目标:积极确认已收到的数据包。重传输只需要重发送序列中未确认的数据包。对iAP2会话的明确和有效的支持。通过以下传输方式支持IAP2:●蓝牙(第488页)。●UART(第469页)。●USB设备模式(第原创 2022-10-27 18:13:07 · 1491 阅读 · 0 评论 -
ios-mfi_蓝牙部分翻译
●使用由蓝牙SIG分配的已分配号码规范中的公司标识符作为供应商ID值(VID),请参见https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/.蓝牙HID配置文件附件可以使用由USB实现者论坛(USB-IF)分配的VID,如果制造商没有蓝牙SIG公司标识符,请参见https://www.usb.org/getting-vendor-id。在没有定义的路由的情况下,设备将默认进行音频播放。原创 2022-10-27 18:11:51 · 1551 阅读 · 0 评论 -
IAP2 通过蓝牙
前言iAP2协议,是苹果MFi技术中的一种,是一个非常完整、经典的通讯协议。两个设备互相使用数据包来通信,考虑到了通讯的完整性、正确性和效率。作为数据包通信学习,是一个非常好的案例。正文配件可以使用iAP2协议来访问高级设备功能。其中一项功能是通过iOS外部附件框架与第三方iOS应用程序进行安全通信的能力。iOS External Accessory Framework:About External Accessories在Accessory Interface Specification R39.pdf中原创 2022-10-27 18:07:02 · 1547 阅读 · 1 评论 -
【蓝牙知识】蓝牙与 WiFi相关总结
广播信道:37 、38、39,对应的中心频率是2402MHz,2426MHz,2480MHz。每次广播,都会在3个信道上将广播数据发送一次,这能有效地避免干扰,即使一个信道存在干扰,另外的信道也可以很好地工作,而三个信道同时被干扰的情况极少。每个信道的有效宽度是 20MHz,另外还有2MHz的强制隔离频带(类似于公路上的隔离带)。(1)关于射频、微波、天线、无线通信、智能硬件、软件编程、渗透安全、人工智能、区块链,Java、Android、C/C++、python等综合能力的培养提升。原创 2022-10-25 20:52:48 · 788 阅读 · 0 评论 -
串口的流控(经验)
对B设备的发送(A设备接收)来说,如果A设备接收缓冲快满的时发出RTS 信号(意思通知B设备停止发送),B设备通过CTS 检测到该信号,停止发送;CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。主机查询主机的CTS脚信号,此信号连接到从机的RTS信号,受从机控制。...原创 2022-08-11 21:42:46 · 886 阅读 · 1 评论 -
开始静态链接... 无法定位链接器!请检查 tools\link.ini 中的配置是否正确。 静态连接失败
因为以前删了易语言,最近I重新装了一下出现标题上面的问题,按照百度的方法试了但是一直没成功,最后自己仔细看了一下发现其实很简单,教程如图首先打开安装易语言的目录,然后找到红框的这个文件,不同版本可能会不一样,但是都差不多;然后就是点进去这个文件然后点了link,然后进入易语言界面直接运行[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NKZCcT56-1656832595931)(https://改img-blog.csdnimg.cn/5cbc0d4c93b44bde原创 2022-07-03 15:19:57 · 1706 阅读 · 0 评论 -
JLink烧录时出现警告-解决办法
可能是盗版烧录器原因,keil下编译时经常弹出警告,虽然勉强可以烧录完成,但是keil工程随后就会自动关闭;百度找了很多资料,终于看到了一个方法解决了;我的JLink驱动版本是:v7.52,Keil版本是5.29,使用JLink调试时一直弹JLink Warning这个警告,虽然能继续仿真,但是总还是让人不爽,经过分析,只要把Keil安装目录下的ARM\Segger目录里的JL2CM3.dll换成Keil4目录里的这个文件就好了之后没看到固件版本号了,但是可以正常烧录没有警告;...原创 2022-05-27 09:47:33 · 3474 阅读 · 1 评论 -
vscode返回上一步
资料转载 2022-05-20 17:30:03 · 1775 阅读 · 0 评论 -
记录一下鼠标控制多台电脑软件的地址,免费的,用起来不错
资料原创 2022-05-20 14:39:32 · 127 阅读 · 0 评论 -
Sublime Text 设置成中文版(完整教程)
https://www.cnblogs.com/AngelTp/p/12955731.html#_label2网址如上,本人亲测可以原创 2022-02-28 15:45:59 · 631 阅读 · 1 评论 -
【别人为什么要帮你】
一、版权声明博主:莫邪帥声明:喝水不忘挖井人,转载请注明出处。原文地址:http://blog.csdn.NET/feilusia二、凭什么让别人帮你?每个人都希望自己有个无所不知的师傅带着,但人人都是自私的,凭什么让别人帮你?“我是新手”、“时间紧,再不做出来我要被辞退了”、“网上找不到,问人会比较快”……这些自身造成的困扰,其实跟别人半毛钱关系都没有。每个人的时间都是金钱,所以依旧没有人帮你。让别人愿意帮助你,最直接的办法是花钱。我也曾在初入行不久即走投无路时,上过淘宝买过STM..原创 2022-01-21 18:09:36 · 137 阅读 · 0 评论 -
Linux 中的TAB键名字补全使用方法
Linux 中的TAB键妙用 Linux 中的长文件名确实可以给我们带来"望文生意"的好处,同时也带来输入长目录名和长文件名麻烦,Linux 中的TAB键 正是为了弥补这一点. TAB键的两大作用: 1. 只需输入文件或目录名的前几个字符, 然后按TAB键,如无相重的,完整的文件名立即自动在命令行出现;如有相重的,再按一下TAB键,系统会列出当前目录下所有以这几个字符开头的名字. 2. 在命令行下,只需输入例如"m",再连续按两次TAB键,系统将列出所有以"m"开原创 2021-10-21 17:11:52 · 2954 阅读 · 0 评论 -
Ubuntu18.04系统py2与py3切换方法
前言Ubuntu18.04系统在安装python时会安装两个版本:2.7和3.6.默认情况下系统环境使用的是python2,但是我们有时需要使用python3来作为我们的开发环境,所以需要自由切换python版本.python2切换成python3sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100sudo update-alternatives --install /usr/bin/python原创 2021-10-21 14:00:19 · 412 阅读 · 1 评论 -
TG_7100b准备开发环境
请在 64 位 Ubuntu 下搭建开发环境。Win10 系统可以在应用商店下载安装Ubuntu18.04 LTS。其他用户可以安装虚拟机软件。以下为基于 Ubuntu 环境开发和编译 SDK 时需要用到的库和依赖包,请您按顺序执行命令来安装。 安装程序运行时库Ubuntu(版本 16.04 X64)sudo apt-get updatesudo apt-get -y install libssl-dev:i386sudo apt-get -y install libncurses-dev原创 2021-10-20 16:51:28 · 813 阅读 · 0 评论 -
此主机不支持“Intel EPT”硬件辅助的 MMU 虚拟化。。
启动虚拟机Vmware报错为此主机不支持 Intel VT-x。如下图试了百度上很多方法:1.关于虚拟机的打开:如果提示"此主机支持Intel VT-x,但Intel VT-x处于禁用状态" 那么 就先进bios 芯片 然后设置Intel Virtualization Technology 为Enabled即可如果此时还是不能打开 而显示模块cpuidearly启动失败 那么可以更改C:\ProgramData\VMware\VMware Workstation\config.ini 添加一句:原创 2021-10-19 11:06:13 · 17903 阅读 · 4 评论 -
(分享)程序上怎么减小误/提高读数精度?
//滤波算法:用一个程序上的滤波—比如求平均数,排序等各种方法来用来调整误差//来源:摩尔吧公开课//修改:2018年10月5日//程序员:画中仙//-----------------------------------------------------------------------//1.平均数 滤波----最基础的//方法:连续取N个采样值进行算术平均运算;//N值较大时:信号平滑度较高,但灵敏度较低//N值较小时:信号平滑度较低,但灵敏度较高//N值的选取:一般流量,N=12原创 2020-11-19 16:48:30 · 484 阅读 · 0 评论 -
51单片机测试脉宽简单程序
#include<reg51.h>#define uint unsigned intuint width;sbit pulse=P3^2;main(){TMOD=0x09; //定时器0模式1,GATE=1TH0=0;TL0=0;while(pulse); //等待P3.2变低TR0=1; //启动定时器0while(!pulse); //等待脉冲变高while(pulse); //等待脉冲变低TR0=0; //关闭定时器0pulse=TH0*256+TL0; //原创 2020-08-14 11:05:40 · 2006 阅读 · 1 评论 -
常用汇编指令大全(有注释)
一、数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EB原创 2020-07-07 18:10:53 · 5460 阅读 · 2 评论 -
用c写的酒店客房登记管理系统
#include<string.h>#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<Windows.h>typedef struct tagCustomer{char m_ID[19]; /身份证号码/char m_name[10]; /顾客姓名/int原创 2020-06-19 19:17:08 · 2120 阅读 · 4 评论 -
STM32打印当前GPIO口输出状态
判断STM32 GPIO输入口的输入状态(高电平或低电平)以PE2和PE4为例:① 判断单个端口是否为高电平:if(GPIOE->IDR& GPIO_IDR_IDR2){函数体;}当PE2端口为高电平时,if条件为真;当PE2口为低电平时,if条件为假;② 判断单个端口是否为低电平:if((~GPIOE->IDR)& GPIO_IDR_IDR2){...原创 2020-05-05 19:07:48 · 1737 阅读 · 1 评论 -
总结STM32-STOP如何稳定最低功耗方法
停止模式基于 Cortex®-M4,带 FPU 深度睡眠模式,并结合外围时钟门控。电压调节器可以在正常或低功耗模式下配置。在停止模式下,1.2 V 域中的所有时钟都将停止,PLL、HSI 和 HSE RC 振荡器被禁用。内部 SRAM 和寄存器内容将保留。为了达到STM32极致低功耗的水平,在进入STOP模式前需要做一些配置:1、ADC必须除能,adc在stop模式下也会产生功耗,休眠前加上A...原创 2020-05-05 16:35:48 · 1036 阅读 · 0 评论 -
STM32F103C8停机低功耗设置
根据项目需要选择的是停机模式进入停止模式之后,任何外部中断都可以唤醒低功耗,但是需要重新配置时钟,不然系统将以默认时钟(没有经过倍频)运行。1.进入低功耗RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);PWR_EnterSTOPMode (PWR_Regulator_ON,PWR_STOPEntry_WFI);2.降低低功耗,需要配置...原创 2020-04-13 22:07:56 · 1049 阅读 · 0 评论