- 博客(18)
- 收藏
- 关注
原创 【可能是东半球最好的stm32入门教学】第1章 环境配置
以往的标准库教程虽有助于理解和熟悉芯片的寄存器功能,但是对于很多初学者,在入门阶段就学习这些较难的知识反而减少了他们的学习兴趣。这就是由STM32官方出品的STM32cubeMX软件,它能让原本复杂的外设初始化操作变得简单易懂,大大降低了开发难度。Keil的优势在于强大的编译和调试功能,但是在编辑代码时,糟糕的体验让人很难相信他是2024年的产品。所有我们可以安装vscode,然后安装“Keill Assistant”插件,就能够在vscode中编辑和编译工程代码了,编程体验相比于keil有了很大的提升。
2024-05-25 16:11:15
448
原创 【可能是东半球最好的stm32入门教学】第0章 课程简介
不知道有多少小伙伴在学习stm32嵌入式时,看过X原子,X火的教学视频。他们的视频虽然对于知识点的讲解面面俱到,但是对于初学者来说,太深入的教程无异于是一种负担,经常学的一头雾水,而且到最后看似学会了很多知识点,但是却没有任何工程能力。作者我当初在学习stm32时,就是在经历了无数次坚持到放弃再重新拾起的过程,才勉强把课程学完。想想也是一段非常痛苦的回忆。为了不让后来的同学在学习道路上遇到这些困难,我们的课程做了精心的设计。下面是课程的链接,不断更新中。
2024-05-22 21:40:45
171
1
原创 【STM32 HAL库实战】串口DMA + 空闲中断 实现不定长数据接收
我们可以简单的理解为,在条件判断都满足的情况下,发生串口空闲中断以后,会开启DMA功能并调用回调函数HAL_UARTEx_RxEventCallback()。于是我们可以得知,调用HAL_UARTEx_ReceiveToIdle_DMA函数后只要发生了串口空闲事件,就会产生串口中断。HAL库中通过HAL_UARTEx_ReceiveToIdle_DMA()函数可以方便的实现串口空闲中断,下面来分析一下这个实现的过程。调用函数会将当前的串口接收类型设置为HAL_UART_RECEPTION_TOIDLE。
2023-12-25 17:14:58
8903
25
原创 【STM32之HAL库实战】0.使用STM32CubeMX配置MCU
2.打开STM32CubeMX软件,点击ACCESS TO MCU SELECTOR,在Commercial Part Number 中输入MCU型号,例如我在这里输入了STM32L431RCT6。选中正确型号然后双击进入下一步的配置界面。搭配HAL库使用体验极佳,图形化界面使得配置MCU上手难度更低也更易于理解,用过的都直呼:真香!选择Serial Wire (适用于STLINK)点击Timebase Source。1.安装STM32CubeMX。STM32CubxMX简介。接下来,开始正式配置。
2023-12-25 09:05:13
564
1
原创 【C语言】const int * 与 int const * 有何区别?
不管const写成如何,读懂别人写的const和*满天飞的类型的金科玉律是const默认作用于其左边的东西,否则作用于其右边的东西所以 const int * 与 int const * 无区别尽量将不将const放在最左边。
2023-07-04 16:38:58
273
原创 【STM32】软件I2C的使用 —— 看这一篇就够了(附代码)
欢迎来到我的博客。今天我想向大家介绍一下STM32软件I2C功能。首先,让我们来了解一下I2C(Inter-Integrated Circuit)总线。I2C是一种串行通信总线,最初由Philips公司开发。它允许多个设备使用同一条总线进行通信,并且每个设备都有唯一的地址。I2C通常用于连接微控制器、传感器和其他外设。在STM32中,I2C总线被实现为硬件和软件两种方式。硬件I2C功能可以直接使用STM32芯片上的I2C外设,而软件I2C需要通过编程实现。
2023-04-12 11:19:14
7131
4
原创 【C语言】如何使用函数指针提高代码质量
本文介绍了 C 语言函数指针的概念、用法和作用,并且给出了三个使用函数指针的例子,分别是回调、多态和跳转表。通过这些例子,我们可以看到函数指针的优点有:可以实现代码的复用、解耦和灵活性;可以实现代码的简洁、清晰和易扩展性;可以实现代码的效率和可维护性。本文也指出了函数指针的一些缺点和风险,并且提供了一些注意事项和学习资源。
2023-03-24 10:47:48
248
原创 【STM32】 HAL库+STM32CubeMX 系列教学
STM32CubeMX是ST意法半导体近年来力推的图形化配置工具,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,一系列原本繁复的配置工作现在都只需在STM32CubeMX软件中点击鼠标就可以轻松完成。STM32CubeMX可以大大地简化硬件初始化的过程,它可以自动生成基于HAL库/LL库的C语言初始化代码,支持多种工具链,如MDK、IAR For ARM、STM32CubeIDE等等。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库。为什么选择HAL库?
2023-03-10 21:14:00
809
原创 HAL库 串口空闲中断+DMA接收不定长数据 详解及踩坑
串口接收不定长数据是串口的常见应用。最近的项目需要用到modbus协议,由于不经常使用HAL库,配置串口接收时遇到了一些问题。在此记录一下,希望能帮助到一些人。
2023-02-15 11:02:52
23362
42
原创 vscode下使用Keil Assistant插件找不到RTE文件路径
最近发现Keil自带的RTE非常好用,但是遇到一个问题,Keil里RTE的文件是统一放在Keil的安装目录内的,并不会拷贝到我们的工程文件中,应该是Keil内部会自动指向这个目录,这就导致工程的头文件路径中并没有包含RTE的头文件。把刚才的路径复制进去,然后回到编译器里就会发现报错已经消失了。用Keil Assistant打开工程会发现报错,未找到头文件路径。首先打开keil,右键CMSIS下任意文件,选择第一项。找到RTE路径,手动在vscode中添加。下一步,在vscode中手动添加路径。
2022-10-24 15:55:31
1603
原创 【C语言】结构体中的函数指针
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档一、函数指针是什么?函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调用函数、传递参数。正确形式:int (*f) ( );这个声明有两对括号,每对的含义各不相同。第2对括号是函数调用操作符,但第1对括号只起到聚组的作用。它迫使间接访问在函数调用之前进行,使f成为一个函数指针,它所指向的函数返回一个整型值。容易混淆..
2022-05-14 16:53:59
15500
1
原创 位操作笔记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录位运算一、按位与 "&"二、按位或 "|"三、按位异或 "^"四、按位非 "~"五、左移运算符 "<<"六、右移运算符 ">>"总结位运算提示:这里可以添加本文要记录的大概内容:一、按位与 “&”11=1,10=0,0*0=0通常用来将某变量中的某些位清0且调试保留其他位不变。也可以用来获取某变量中的某一位。例如,如果需要将int型变量n的低8位全置成0,而其余位不变,则可以.
2022-04-18 21:05:50
221
原创 【C语言学习笔记】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、题目2.读入数据总结前言在学习C语言的过程中,遇到了一道2003计算机二级考题,考察了指针的使用。特此记录下来。一、题目以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是()。A) main(){ int*p; fun(p);}int fun(int *p){ int s; p=&s;}B) main(){ int *p; fun(.
2022-03-29 20:02:11
981
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人