11 2023 档案
摘要:环境说明: 开发板:野火STM32指南者 单片机:STM32F103VET6 SPI_FLASH:W25Q64(Q80, 16, 32, 64, 128均可) IDE:Keil V5 USB大容量存储设备类(The USB mass storage device class),简称MSC(Mass
阅读全文
摘要:为了使用 stdio 的printf()函数,而printf()函数是依靠底层的 fputc() 工作的,所以需要将 fputc 函数进行重写,这个过程叫做“重定向”。 STM32 标准库重定向: int fputc(int ch, FILE* f) { UART_Send_Byte(USART1,
阅读全文
摘要:本文转载自博客园博主:Couvrir洪荒猛兽 原文章链接:https://www.cnblogs.com/couvrir/p/17461078.html MCU:STM32F103VET6 开发板:野火指南者 开发环境:STM32CubeMX+MDK5 USB虚拟串口,简称VCP,是Virtual
阅读全文
摘要:在一般工程中,通用的配置是开启时钟(RCC配置)、以及HAL初始化配置(SYS配置)。本文主要讲解SYS配置。 SYS配置页各配置项 CubeMX 中 SYS配置页如下: Debug :默认是关闭的,如果不使用调试器关闭即可,即No Debug;在STM32CubeMX的SYS选项栏中有SW和JTA
阅读全文
摘要:STM32 的 USB 模块可以产生三种中断:USB唤醒中断、USB高优先级中断和USB低优先级中断,在STM32的参考手册中没有详细说明这三种中断对应哪些事件,现说明如下: 1)USB唤醒中断:在中断向量表中的位置是42。这个中断在USB设备从暂停模式唤醒时产生,唤醒事件由USB_ISTR寄存器的
阅读全文
摘要:问题 在Java中,int类型数据的大小比较可以使用双等号,double类型则不能使用双等号比较大小(0,0 == 0.0 是不可以的),那若使用double类型时怎么进行比较呢? 方法 (1)转换为字符串 如果要比较的两个double数据的字符串精度相等,可以将数据转换成string然后借助str
阅读全文
摘要:当进行数组初始化的时候,可以采用 ={一个元素的值} 的方式,例如: int intarr[10] = {1}; int chararr[20] = {'a'}; 使用这种方式初始化,可以将数组所有成员都初始化,没有随机值,从而保证了安全。 其中,数组的值初始化为:第一个值(arr[0])为指定元素
阅读全文
摘要:ATT 层规定了ATT_MTU。其具体数值是多少呢? 其中:Attribute Parameters 长度为: 一般情况下L2CAP层有MIC,ATT_MTU 将是 0B - 23B/247B BLE 4.0/4.1支持下的最大长度 (MTU)是23B; BLE 4.2/5.0是247B。同时 BL
阅读全文
摘要:OpCode 总体构成 OpCode 由以下三部分组成: Opcode PDU :代替某种命令,通过的PDU携带的Attribute Parameters格式不同,下面详细说明。bit 0-5位表示。 Command:表示PDU Type 是否是命令(Command )。bit 6表示。 Authe
阅读全文
摘要:一、 lwip 源码和资源 lwip官方网站:https://savannah.nongnu.org/projects/lwip/ lwip官方网站下载地址:https://download.savannah.nongnu.org/releases/lwip/ 二、教程与例程 1. 资料中心: 野火
阅读全文
摘要:原文链接: https://zhuanlan.zhihu.com/p/527434096?utm_id=0 GAP简介 通用访问配置文件(GAP)规定了设备在较低级别如何执行控制程序,如设备发现、连接、安全建立等,以确保互操作性,并允许来自不同供应商设备之间的通信。主要的操作有: 发现并与配对 广播
阅读全文
摘要:前言: 企业中产品手册少不了图片的插入,那如果用markdown维护手册的话,怎么插入图片呢?今天介绍以下几种方法: (一)插入本地图片 (二)插入网络图片 (一)插入本地图片 只需要在基础语法的括号中填入图片的位置路径即可,支持绝对路径和相对路径。 例如: 必须勾选use_microlib
阅读全文
摘要:cout 有缓存区,因此在一些情况下,并不会主动显示出来。 在这种情况下,可使用额外的 “刷新” 功能(<<flush)来确保根据我们的要求显示输出。 // C++程序演示flush函数的使用 #include <iostream> #include <thread> #include <chron
阅读全文
摘要:一、string类的 getline()函数(全局函数) 使用时需要添加头文件:#include <string> getline(cin,str)函数是处理string类的函数。第二个参数为string类型的变量。读入时第二个参数为string类型,而不是char*,要注意区别 getline()
阅读全文
摘要:1.指针变量的值是地址,地址通常用16进制表示 2.int a=1; int* p=&a; printf("%d\n",p);和printf("%p\n",p);有什么区别呢,输出的都是p的值,%p是把指针变量p中存储的a的地址以十六进制形式输出,%d是吧p中存储的a的地址以十进制形式输出。输出的都
阅读全文
摘要:参考应用文章:《USB转串口芯片你看好哪个(USB转串口芯片介绍)》 简短不看版: 建议选择这2款芯片:CP2102/CP2104、CH340C。稳定性较好。 不推荐:FT232(不太稳定)、PL2303(有驱动软件问题)。 目录: FT232 CP2102/2104 CH340G/340C PL2
阅读全文
摘要:作者: zyl4444 转载自:https://www.cnblogs.com/ZYL-FS/p/17608038.html 本文对于CH58x系列程序烧录的方法做出几点说明。在学习和使用WCH蓝牙系列过程中,这里以CH582芯片为例,对于它的固件程序烧录的方法有以下几种方法。 CH582采用ISP
阅读全文