自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

原创 笔记之STM32F0芯片SPI_DMA的使用(HAL库)

关于SPI+DMA的使用,进行了两次测试了,之前测试过一次,结果一直没找到问题,现在明白该如何使用了,特此记录。一、自身SPI时间关于SPI的通常的应用很简单,特别是通过cubemx自动生成的代码,这里就不过多介绍,可自行百度搜索关于SPI的教程及相关资料这张图片是通过cubemx生成的SPI代码的一个效果(NSS软件控制+SPI传输),上述是仿照HAL_SPI_TransmitReceive()此函数又重新修改创建了一个BSP_SPI_TransmitReceive()函数,通过调用B.

2021-12-01 11:38:28 10093 16

转载 C与C++相互调用注意事项

1. C如何调用CPP代码在C中如何调用C++函数的问题,简单回答是将函数用extern "C"声明; 然后C代码中不要include C++的头文件, 而采用直接在C中增加函数声明的方式;/*C++ code*/extern "C" void f(int);void f(int i){// your code}/*C code*/void f(int); // 不引入, 而只是直接声明void cc(int i){f(i); //调用// other code}如果

2021-10-13 17:36:10 1132

原创 十、C++ STL教程、标准库、有用资源、实例

一、C++ STL 教程在前面的章节中,我们已经学习了 C++ 模板的概念。C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件:组件描述容器(Containers)容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。算法(Algorithms)算法作

2021-10-10 17:44:01 300

原创 九、C++信号处理、多线程、Web编程(简述)

一、C++ 信号处理信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 中。信号描述SIGABRT程序的异常终止,如调用 abort。(按 Ctrl+C 产生abort中断)SIGFPE错误的算术运算,比如除以零或导致溢出的操作。SIGI

2021-10-10 16:15:29 355

原创 八、C++命名空间、模板、预处理器、预定义宏

一、命名空间假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。同样的情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一个相同的函数 xyz()。这样,编译器就无法判断您所使用的是哪一个 xyz() 函数。因此,引入了命名空间这个概念,专门用于解决上面的问题,它可作为附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即

2021-09-28 16:01:52 415

原创 七、C++文件和流、异常处理、动态内存

一、C++文件和流到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。现在介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型描述ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。ifstream该数据类型表示输入文件流,用于从文件读取信息。fstream该数据类型通常表示文件流,且同时具有

2021-09-25 18:10:27 515

原创 PlatformIO开发之STM32点灯(基于arduino框架)

前段时间,看一些开源项目时,发现是基于PlatformIO IDE编写的,然后去查了下这个IDE,功能性还是挺强大的,不过国内好像是没找到特别详细的一个教程。为此试下毒。PlatformIO 官方手册1.PlatformIO 介绍PlatformIO 是一个跨平台、跨架构、多框架、专业的 嵌入式系统工程师和编写应用程序的软件开发人员的工具 用于嵌入式产品。PlatformIO IDE 是下一代物联网集成开发环境。跨平台构建系统,没有对操作系统软件的外部依赖:800+ 板35+ 开发平台2

2021-09-10 14:41:19 11142 10

原创 六、C++重载运算符、重载函数、多态、抽象数据、数据封装、接口(抽象类)

C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。1.C++ 中的函数重载在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)

2021-09-02 17:53:24 316

原创 五、C++ 类、对象、继承

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。一、C++类定义定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。类定义是以关键字 class 开头,后跟类的名称。类的主体是包

2021-09-01 18:24:08 175

原创 四、复合类型(数组、字符串、指针、数据结构、共用体、枚举)

一、数组数组(array)是一种数据格式,能够存储多个同类型的值。每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素。要创建数组,可使用声明语句。数组声明应指出以下三点:♦ 存储在每个元素中的值的类型;♦ 数组名;♦ 数组中的元素数。声明数组的通用格式如下:typeName arryName[arrySize];表达式arraySize指定元素数目,它必须是整型常数(如10)或const值,也可以是常量表达式(如8 * sizeof(int)),即其中所有的值在编译时

2021-08-31 11:02:01 566

原创 记录各个网站收藏文章

1.《正点原子论坛》链接: 精英 战舰emwin-GRAPH控件 实现adc模拟示波器例程 链接: 分享:关于内部时钟:当低速外部晶振坏了,可以用成内部时钟LSI 链接: 开源键扫例程--- 无须延时消抖等待,能稳定可靠地一体满足普通、短按(单击/双击)、长按、组合等应用需求的键盘扫描程序 链接: 分享我的项目必需品:IAP+YMODEM+CRC16+AES256+PC端软件+hex合并 链接: STM32 IAP引导程序(AES256加密 外接HC08蓝牙模块可用手机升级)附手机自己

2021-08-19 10:56:17 223

原创 三、C++基础二(修饰符、存储类、函数、引用、日期&时间)

一、C++修饰符C++ 允许在 char、int 和 double 数据类型前放置修饰符。修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。下面列出了数据类型修饰符:signed、unsigned、long、short。修饰符 signed、unsigned、long 和 short 可应用于整型,signed 和 unsigned 可应用于字符型,long 可应用于双精度型。修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀。例如:unsign

2021-07-12 18:26:41 189

原创 笔记之goto语句的使用

关于goto语句大家一直强调的是能不用尽量不用,但是goto语句确实有他的一个优势,最典型的就是: 高效的跳转方式。int Function(void){if(x) goto ERROR;if(xx)goto ERROR;//... ...return 1;ERROR: XXX.Close(); return 0;}像这种跳转到错误处是goto最常见的用法,还有就是在多层循环嵌套中,跳出循环用goto就比较方便,而如果用break、return则需要执行好几次。

2021-06-29 17:27:49 611

转载 【转载】ROM、RAM、FLASH、NVM……详解

看到一篇写的挺好的关于ROM、RAM…的文章,特此记录原文链接:ROM、RAM、FLASH、NVM……一文搞定原文:/-----------------------------------------------------------------------/前段时间面试了一个小伙子,他有三四年嵌入式软件开发经验的了,随意问了一个问题:MCU软件的变量是存在哪的,RAM还是ROM?他犹豫了会,说是ROM。接着我问他RAM和ROM有什么区别,他“呃”了几下,然后就没然后了……很多人在“专注”开

2021-06-28 14:11:47 5855

转载 【转载】html转义字符

今天在用Markdown输出竖杠时,发现一直输出不来,百度找到资料:html转义字符转换字串中的字符. 字符 实体名称 实体数字 描述 ♠ ♠ ♠ 黑桃 ♣ ♣ ♣ 梅花 ♥ ♥ ♥ 红桃,心 ♦ ♦ ♦ 方块牌 ◊ ◊ ◊ 菱形 † † &#82

2021-06-25 17:33:27 339

原创 二、C++基础一(基本语法、程序结构、关键字、数据类型、变量类型和作用域、常量的使用)

一、C++ 基本语法C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。. 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。. 类 - 类可以定义为描述对象行为/状态的模板/蓝图。. 方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。. 即时变量 - 每个对象都有其独特的即时变量。对象的状态是由

2021-06-25 17:25:03 296

原创 一、了解C++

C++学习笔记一:了解C++1.C++ 简介C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++

2021-06-25 11:55:04 184

转载 【转载】STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示

找到一个看门狗的详细介绍,特此记录,原文链接:https://www.cnblogs.com/pertor/p/9483445.html原文信息:一,介绍STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示:IWDG和WWDG两者特点如下图所示:独立看门狗的手册资料:窗口看门狗的手册资料: 应当注意:在窗口看门狗中,当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位【注】图中的WDGTB为3表示2^3=8,表示8分频,最小时间910us也等于每次计数

2021-05-13 13:59:49 319

转载 【转载】关于git学习

记录学习git的书籍:https://git-scm.com/book/en/v2这是一本关于git的书籍,讲的挺详细的,特此记录选为简体中文就可以中文形式阅读了。我这下载了中文的PDF书籍,也可自行到上面那个链接下载蓝奏云链接:https://guyue1997.lanzous.com/is7WPmqcxve...

2021-03-09 17:59:48 86 1

转载 【转载】关于全局变量的一些注意事项

一直听说不要大量使用全局变量,但是全局变量用的太舒服了…不过慢慢写的代码多了,就出现问题,全局变量太多,代码都缺乏艺术感了…同时也会造成一些未知错误(水平太低,有时碰到一些莫名奇怪的问题),然后我将那个全局变量改掉,就没了…总之使用太多全局变量容易出现问题,下面是我转载一位大佬对全局变量的一些理解,特立贴收藏:http://blog.chinaunix.net/uid-20620288-id-3399952.html/****************************************

2021-03-05 16:21:23 1744

原创 笔记之PWM暂停输出,保持低电平问题

在进行PWM输出时,碰到的一个问题(关于PWM暂停现象的)一、问题描述定时器的配置:void MX_TIM14_Init(void){ TIM_OC_InitTypeDef sConfigOC; htim14.Instance = TIM14; htim14.Init.Prescaler = 15-1; htim14.Init.CounterMode = TIM_COUNTERMODE_UP; htim14.Init.Period = 64000-1; htim14.Ini

2021-02-20 15:42:02 6089 5

转载 【转载】静态变量、全局变量和局部变量的区别

转载自:https://www.cnblogs.com/King-Gentleman/p/5350563.html静态变量、全局变量和局部变量的区别1.从作用域看:C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern关键字再次声明这个全局变量。2>

2021-01-23 14:32:45 274

原创 笔记之STM32F072CBT6芯片的串口高级功能之反相配置问题(HAL库)

串口的使用,通常都是修改波特率,停止位,校验位等这几个常见的参数,所以这些的配置基本是没有什么问题的,不过今天逛论坛的时候发现有些芯片是支持软件反相功能的,目前我发现F0的大多都有这个功能,F1的没有这个功能,大家可以去看看其他一些芯片。一、F0芯片手册上寄存器在串口的控制寄存器 2( USART_CR2)第17位注意:这里要配置反相,必须是UE=0的时候才能改写在F1的手册上,这几个位是保留位二、进行测试理论上可以实现的,故我直接在我只有的串口代码上直接加下面代码,直接操作寄存器USART

2021-01-12 17:05:50 4044 3

转载 【转载】vscode配置简单C语言环境,并输出hello world测试

这篇文章仅用来记录我之前找到的VScode配置c语言环境文章,详细:原链接,这位博主写的特别详细。

2020-12-22 09:58:58 2144

原创 笔记之编译器优化(volatile关键字)问题

一、碰到的问题前段时间在编写代码的时候,碰到这个问题,我在中断中对变量赋值 RE_Flag=1,然后在其他的一个任务中执行这行代码while(RE_Flag==0){},按照我的理解:这个任务中会等待RE_Flag=1时,然后才会执行后面的代码,但是我调试发现,程序一直卡在 while(RE_Flag ==0){}这行代码,但是RE_Flag这个变量已经变成了1,但是为什么一直卡在while这呢?二、变量关键字用volatile关键字是防止变量被编译器优化volatile 是在C ,C++,Java

2020-10-29 18:31:27 1282

转载 转发微雪课堂的STM32CubeMX系列教程

找到一份比较详细的STM32cubemx系列的教程,特转发踩点。https://www.waveshare.net/study/portal.php?mod=view&aid=629

2020-10-12 18:41:59 1202

原创 笔记之STM32F0优先级问题

昨天在配置定时器7的优先级为1的时候,他不能打断优先级为5的外部中断,定时器7中断优先级配置为0的时候,他又能够打断外部中断。有些奇怪,正常来说定时器优先级为1或0的时候都能打断外部中断的啊,所以我在线调试,看看他的一个优先级具体是多少,打开keil查看NVIC的窗口,如图进去之后我发现定时器7的优先级为64我代码上TIM7的优先级定义的是5,但是测出的优先级是64,那么64是怎么来的呢?(十进制)64=(二进制)0100 0000; (十进制)5=(二进制)0000 0101并且我通过修改TI

2020-09-22 09:53:57 1216

原创 笔记之定时器重装载值的问题

在日常使用定时器的时候我们往往会通过改变重装载值来实现不同时间的一个定时,就像我在一个项目功能中,使用的定时器7,刚开始我设置的是//该CPU时钟是48M,分频系数为48,则48M/48=1M--->对应的是1us //整个产生的中断时间是=CPU时钟/(分频系数+1)*(重装载值+1),这里对应的就是1us*5000=5000us=5ms htim7.Instance = TIM7; htim7.Init.Prescaler = 4800-1; //分频系数 0.1ms h

2020-09-21 18:07:32 8947 12

转载 SysTick的优先级是高还是低

在其他论坛看到关于滴答定时器的优先级解释,很详细 收藏!!链接如下:https://my.oschina.net/oceanstack/blog/371413

2020-07-18 11:41:26 299

原创 N76E003低功耗模式(+中断唤醒)

一、低功耗问题N76E003电源有两种模式,若想最大降低功耗,那么当然选择掉电模式了,进入掉电模式很简单直接set_PD,单片机就进入掉电了;文档中给出的电气特性说是最低可以达到6-8ua;我也测试了,若只写clr_BODEN;//关闭欠压检测set_PD;// 进入掉电模式发现功耗还是比较大的,并没有达到6-8ua;后面找到问题,原来将单片机切换至低速模式(LIRC)时,再进入掉...

2019-12-17 20:17:49 2553 1

CN_SX1280中文文档.docx

SX1280和SX1281收发器提供2.4 GHz频段的超远距离通信,线性度可承受严重干扰。这使它们成为稳健可靠的无线解决方案的理想解决方案。它们是第一款同类ISM频段收发器IC,用于集成飞行时间功能,开放应用解决方案,以跟踪和定位工厂中的人员,宠物,无人机或物体。这些长距离2.4 GHz产品包括多个物理层和调制,以便为视频和安全应用以高数据速率优化远程通信。由于高集成度和超低电流消耗,可以轻松设计用于可穿戴设备的非常小的产品,允许使用微型电池。

2020-10-29

SX1261-2 中文数据手册.pdf

SX1261 和 SX1262 是 1GHz 以下频段无线收 发芯片,其非常适合远距离无线应用。 这两款 芯片的接收电流只需 4.2 毫安,也非常适合要 求长电池寿命的应用。 SX1261 的最大发射功 率可达+15 dBm,SX1262 的最大发射功率可 达 22 dBm 。 它们都支持 LoRa®调制和 (G)FSK 调制。这两 款芯片可以灵活的配置,以满足全球不同的 LoRaWANTM 的应用需求标准或专有协议。 芯片的物理层也满足 LoRa 联盟发布的 LoRaWANTM 协议规格要求。 芯片也可以应用于满足无线电法规的系统中。 这些无线电法规包括但不限于 ETSI EN 300220、 FCC CFR 47 Part 15,中国的监管要求和日本 的 ARIB T-108。 从 150MHz 到 960MHz 连续 的频率覆盖范围允许支持世界上所有主要的 1GHZ 以下的 ISM 频段。

2020-05-21

空空如也

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

TA关注的人

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