自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 STM32用HAL库函数实现硬件IIC

这篇笔记我主要介绍代码实现,想要了解原理的请自己看视频,我不过多赘述了。

2024-04-26 17:10:48 69

原创 stm32外部中断

基本功能实现了,但是还没按键消抖,从原理图上看我这个板子根本没滤波电容。所以这里调整一下滴答计时器中断和按键触发中断优先级顺序。今天先是改了个一直以来的认知错误,跑马灯不用电平反转需要两次delay,不然第二次翻转就出现问题了。算是白学了,哈哈哈哈。为了及时处理高优先级事件stm32引入了中断机制,这里我们做一个实验,按下按键之后让PC13小灯熄灭,平时保持常亮。从上往下依次是:上升沿触发中断、下降沿触发中断、电平上升下降都触发中断;我手上这块板子按下按键PB14捕获低电平,所以选择下降沿触发。

2024-04-25 17:23:28 183

原创 ARM单片机的GPIO口在控制不同LED、按键时的设置

GPIO口在驱动共阴极、共阳极LED灯时需要不同的初始化设置。个人备忘,不喜勿喷。

2024-04-09 17:31:25 217

原创 百问网FreeRTOS学习笔记第50到56讲

本专栏一切无特殊声明的知识转述(源码、文字以及图表)版权均归属于百问网,源码仅供学习,请勿用于商业用途;不出意外的话这也是本专栏最后一篇文章,后续的查漏补缺会体现在其他专栏之中;再次说明如若需要0 error 0 warning的课堂参考代码可以私信交流*/

2024-04-03 17:21:24 278 1

原创 百问网FreeRTOS听课笔记第43到49讲

本专栏一切形式的知识转述(源码、文字以及图表)版权均归属于百问网,源码仅供学习,请勿用于商业用途*/

2024-03-20 17:29:34 858 1

原创 AD学习笔记第一章

1-1 新建PCB工程

2024-03-05 20:04:06 383

原创 Strcpy函数的使用——计算机二级水平的嵌入式面试题

这个声明方式在有的编译器里面是不可行的,比如Visual Stdio里面,报错“const char* 不能用来初始化char* 类型的实体”,顺从它加上const就行了。这是为了确保目标字符串是一个有效的 C 字符串。函数将源字符串(包括空字符 '\0')复制到目标字符串中,并返回目标字符串的指针。的返回值通常用于链式调用,但在实际编程中,返回值通常不被使用,因为目标字符串。,意味着它不应该被修改,但在实际使用中,源字符串本身并不需要是常量。是一个在 C 语言中常用的标准库函数,用于复制字符串。

2024-02-26 11:35:13 321

原创 算法与数据结构学习笔记第1到10讲

出自:【【C语言描述】《数据结构和算法》】 https://www.bilibili.com/video/BV1jW411K7yg/?share_source=copy_web&vd_source=bab35cd72a6b7a3ffd3c77e664d802f1*/数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。/*心血来潮打算学一下这个提高自己的综合编程能力,希望能坚持学一下。程序设计=数据结构+算法。

2024-02-24 18:30:34 326

原创 百问网FreeRTOS复习笔记第29到35讲

*本文的所有源代码以及其他一切形式的知识转述(文字、图表)均出自百问网,传送门:【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 https://www.bilibili.com/video/BV1Jw411i7Fz/?假设我们让r=0,w自增进行写操作,w会从0开始递增到7,但如果7位置也被写入数据,会出现r==w(缓冲区为空的判断条件),这与事实并不符合。这时就需要两个变量作为读写标志位,r代表读,w代表写。

2024-02-20 17:27:41 364

原创 百问网FreeRTOS复习笔记第22到28讲

pxCurrentTCB会自动指向当前最高优先级的就绪任务,同优先级的任务被依次创建之后它也会跟着改变指向,虽然启用任务调度器之后系统会创建一个空闲任务,但是这个默认的空闲任务优先级较低,pxCurrentTCB依然会指向程序员最后创建的高优先级新任务。程序在开始运行的时候会从pxCurrentTCB指向的就绪态任务开始,这就是之前06_Task_Create工程中OLED会先从Task3开始打印的原因。任务的最高优先级(configMAX_PRIORITIES)是56,这个宏被引用在了优先级管理链表中。

2024-02-04 16:41:46 341 1

原创 Keysking的STM32教程笔记第18讲

除了外部触发模式以外,定时器的从模式还有三种,分别叫做复位模式(Reset Mode)、门模式(Gated Mode)以及触发模式(Trigger Mode)。TI1、TI2与ETR均可以在触发器选择后进入从模式控制器,在CubeMX中只需要将从模式设置为外部时钟模式1并且选择一个触发源就可以将来自GPIO口上的信号引入计时器。中断机制会将产生的中断对应的中断标志位设置为1,然后中断控制器NVIC通过中断向量表找到对应外设的中断处理函数,中断处理函数都以_IRQHandler作为后缀。

2024-01-30 21:25:56 523 1

原创 百问网FreeRTOS复习笔记第15到21讲

FreeRTOS对于被被挂起的任务提供了查询链表,找到头节点之后就可以顺藤摸瓜,这个链表中存放着任务结构体(TCB:TaskControlBlock)。内存管理即是如何使用FreeRTOS中的堆。对于堆中的内存,CubeMX做出如下图管理,首先内存分配既可以是静态的也可以是动态的,其次堆的总容量大约为3072字节,最后使用的内存调度算法是heap_4。一般使用heap_4,有多块内存使用heap_5。有关heap的函数,大家可以参考韦老师编撰的手册。这一讲的目的是分别用静态、动态的方式创建多个任务。

2024-01-30 17:26:38 366 1

原创 百问网FreeRTOS复习笔记第8到14讲

这个入口函数是调度器算法的大门,在这之前不能使用osDelay进行延时,从ST给我们写的注释里面也可以得知FreeRTOS工程里面main.c的while(1){}循环不起作用。(1)在 Core\Src\main.c 的 main 函数里,初始化了 FreeRTOS 环境、创建了任务,然后启动。因为ARM架构编程和内存四区的知识我已经在不同的课里学了好几遍。/*源代码以及其他一切形式的知识转述均出自百问网课程,仅供参考,请勿用作商业用途。宏的名字是大小,可以添加小写的前缀。(2)常用的两种数据类型。

2024-01-30 15:53:19 379 1

原创 百问网FreeRTOS复习笔记第1到7讲

在void StartDefaultTask(void *argument)函数中讲UART-Teat()解除注释,测试结果OLED屏幕上出现了预期的打印结果,串口助手截图如下。FreeRTOS 的参数包括时基频率、任务堆栈大小、是否使能互斥锁等等,需要开发者根据自己对 FreeRTOS 的了解以及项目开发的需求,来定制参数。(1)如果想要一直FreeRTOS程序,最好预留一个TIM计时器/*而不是系统滴答计时器*/作为时钟基准,老师这里选的是TIM4,跟着选就可以了。/*注意模块之间的互斥关系。

2024-01-23 17:28:07 880 1

原创 Keil MDK编辑工程文件时的步骤备忘

⑨右键单机Project框子里面这个带*的总文件夹,单击三个带颜色的方格/*Mange Projects Item*/⑦在工程文件夹里新建好“System”、“Hardware”这类文件夹/*这里以Hardware为例*//*如果有现成的ioc可以复制粘贴到一个同名空文件夹里面,版本问题可以选择migrate进行兼容*/在Folder Setup里面设置路径,点右边那三个点去找新建的文件夹/*隐私问题不截图了*/⑩点击Groups右边第一个按钮/*虚线画的矩形*///祝大家技术进步。

2024-01-22 17:30:01 343

原创 百问网FreeRTOS听课笔记第36到42讲

笔者当时遇到的情况是编译输出窗口(Build Output)中一大串驱动接口函数都在报错,问AI然后答复是这样的:这个错误提示是在链接阶段出现的,表示在执行区域中没有足够的空间来满足某些条件。②挑一个教学裁剪FreeRTOS模板的课学习一下这个过程,一方面可以提高对内核源码的熟悉程度,另一方面如果以后遇到了使用其他MCU+RTOS组合(例如将RT-Thread移植到GD32上)的时候不至于因为不能用CubeMX而束手无措。①自己尝试用CubeMX重新写一个完整工程出来,驱动可以移植老师写的,熟悉一下流程。

2024-01-22 13:37:50 418

原创 C++函数提高课

①如果某个位置已经有了默认参数,那么从这个位置开始从左往右都必须有默认值。语法:返回值类型 函数名 (参数=默认值){}函数形参列表中的形参可以具有默认值。

2024-01-19 17:30:57 387

原创 在stm32单片机上实现串口打印

串口调试是我们在开发单片机系统时常用的一种手段,我们可以通过重写stdio函数库中的printf函数实现这一点。大概就是这样了,如果有其他问题就检查一下串口号对不对,然后代开设别管理器看看转串口CH340驱动装没装。这次我使用CubeMX进行配置,编程IDE用的是keil,开发板是正点原子阿波罗。①把Target选项卡里的Use MircoLIB选项勾上。2.在project manger中生成keil工程。LED是笔者为了配合调试写了个点灯的程序,不必理会。②引用stdio头文件。1.开启usart2。

2024-01-18 11:13:12 668 5

原创 立创EDA使用心得

原理图绘制完成后要记得进行DRC检测,路径:设计->检查DRC,检查无误后再更新转换至PCB版图。折线可以用来划分区域,遇上对不齐的地方就调整网格大小,默认情况下最好选择0.1inch。电源线的线宽建议绘制为信号线的两倍,例如VCC供电线和GND地极线。shift+f 器件清单。空格 旋转元器件。w(wire) 连线。网络标签的十字标号一定要放到导线上去。矩形板框建议绘制完成后右键添加圆角。

2024-01-17 19:45:33 431

原创 Multisim使用备忘录

旋转元器件 ctrl+r。打开选择元器件 ctrl+w。双击元器件修改参数(不建议在仿真过程中使用)

2024-01-17 19:35:38 350

原创 printf输出字符串的乱码解决

我哥们教我的,我也只是死记硬背

2024-01-17 16:50:22 720

原创 STM32的定时器

STM32的定时器有关知识点

2024-01-17 11:33:04 396

原创 C++中的引用

套个盾:这只是我自己的学习笔记,有错的地方欢迎大家斧正。注意事项:引用必须初始化,且初始化后不可更改。语法:数据类型 &别名=原名;1.基本作用:给变量取别名;作用:避免使用指针修改实参。

2024-01-16 11:10:45 407 1

基于STM32F411调试AM2320(HAL库)

硬件IIC驱动,可以串口打印也可以用一个TFTLCD屏幕打印。介绍文章在憋,后面没心情可能就咕咕了。。。。但是有问题欢迎私信交流。

2023-07-30

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

TA关注的人

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