- 博客(19)
- 收藏
- 关注
原创 STM32第十二节(中级篇):串口通信(第二节)——串口固件库函数以及串口发送和接收代码讲解
本节课的代码是基础的配置,在后续学习以及编写代码的时候有很大的作用在上述代码中,就是对于USART结构体的初始化,我们可以在野火的资料盘中找到,在stm32f10x_usart.h文件中可以找到。我们观察这段代码,逐行解释代码部分。
2024-08-14 20:02:28
1194
原创 STM32第十二节(中级篇):串口通信(第一节)——功能框图讲解
我们在51单片机中就已经学习过了串口通信的相关知识点,那么我们现在在32单片机上进一步学习通信的原理。我们主要讲解串口功能框图以及串口初始化结构体以及固件库讲解。
2024-08-14 14:33:42
1299
原创 STM32第十一节(中级篇):SysTick——功能框图讲解和系统配置以及实验函数的编写
从这节课开始我们学习有关SysTick系统定时器,主要讲解功能框图以及定时实验讲解。
2024-04-20 14:27:24
1889
1
原创 STM32第十节(中级篇):EXTI(第二节)——GPIO外部中断代码讲解
好久不见,从今天开始我们接着学习有关EXTI中断的内容。本节课我们通过分析GPIO外部中断代码来讲解我们新的知识点。
2024-04-13 14:07:46
1552
原创 STM32第十节(中级篇):EXTI(第一节)——EXTI功能框图及初始化结构体讲解(包括STM32中断应用总结)
在STM32的中级教程中,第十节涉及到外部中断(EXTI)的功能框图以及初始化结构体的讲解。在本节课中,我们将深入探讨外部中断的初始化结构体,这是配置外部中断功能所必需的步骤。了解如何正确地初始化外部中断结构体可以帮助开发人员充分利用STM32的中断功能,并实现更加灵活和高效的中断应用。除了讲解外部中断的功能框图和初始化结构体外,本节课还将对STM32中断应用进行总结。中断是一种在嵌入式系统中常用的技术,能够提高系统的响应速度和效率。
2024-03-29 19:51:55
1620
1
原创 STM32第九节(中级篇):RCC(第三节)—— 使用HSE配置系统时钟并使用MCO输出监控系统时钟
这节课我们开始学习使用HSE配置系统时钟并使用MCO输出监控系统时钟,上节课我们讲了固件库里的系统时钟配置函数,是机器写的,我们现在自己来写一个。
2024-03-19 14:11:59
2115
1
原创 STM32第九节(中级篇):RCC(第二节)——讲解系统时钟配置函数SetSysClockTo72
上节课我们讲了理论部分,那么我们这节课讲一下系统时钟配置函数SetSysClockTo72(固件库里面的系统时钟配置函数)。创作不易,点个关注吧!
2024-03-16 20:59:00
1744
1
原创 STM32第九节(中级篇):RCC(第一节)——时钟树讲解
从本章开始,我们就已经开始了中级篇的学习。在这一阶段,我们主要学习时钟RCC,中断定时器,串口通信,DMA,读写EEPROM,读写串行Flash以及FatFs的知识点,整体难度又上升了一部分。所以之前的代码功底,C语言编写能力以及单片机的使用至关重要。如果想学习的同学们可以观看我之前写的初级篇的内容。创作不易,点个三连支持一下吧!
2024-03-14 20:36:25
1610
2
原创 STM32第八节:位带操作——GPIO输出和输入
P0=0xFE;//总线操作//位操作LED1 = 0;如此这般,就是总线操作与位操作的区别(在51单片机中)。那么我们在32中该如何操作呢 位操作就是可以单独的对一个bit位进行读和写的过程。51 单片机中通过关键字 sbit 来实现位定义,而 STM32 是通过访问位带别名区来实现。在 STM32 中,有两个地方实现了位带,一个是 SRAM 区的最低 1MB 空间,另一个是外设区最低 1MB 空间。
2024-03-12 21:01:20
3895
1
原创 STM32第七节:GPIO输入——按键检测(包含带参宏)
上节课我们学习了GPIO输出——使用固件库点亮LED,包含LED以及GPIO的讲解,以及具体代码的编写。那么我们节本课就接着上节课讲讲带参宏以及GPIO输入——按键检测。创作不易,点个三连霸!这里我们其实是写了一个宏定义函数,我们设置了ON为1,OFF为0;在下面的宏函数中,定义LED_G(a)中的参量是否为1或0;这样我们就可以控制输出的具体代码,使得main.c文件更加简洁明了,可读性更强。
2024-03-10 15:35:24
3680
1
原创 STM32第六节:GPIO输出——使用固件库点亮LED
从这节课开始呢我们就正式进入了固件库编程,我们学习了GPIO口的相关知识,那么我们的第一个程序就写GPIO输出——使用固件库点亮LED吧。下面就让我们一起来学习,创作不易,点个三连支持一下吧!
2024-03-07 07:35:13
1474
1
原创 STM32第五节:新建工程——固件库版本
本节课我们要使用我们已经学习过的固件库新建一个工程,在这节课之后,我们后面就一直会使用固件库进行编程。对于这节内容,以后的工程可以直接套用本节接下来所写的这个模板。
2024-03-05 15:34:47
1087
1
原创 STM32第四节:自己写库——构建库函数雏形(第四节)
上节课我们学习如何更加系统的优化程序以及运用STM32官方给出的标准库,包括如何定义初始化结构体以及枚举定义的运用,还有官方给的GPIO_Init函数和如何配置结构体变量。这节课我们继续学习自己写库——构建库函数雏形的内容。这节课将是我们自主初步学习构建库函数的最后一节课,在学完这四小节内容后,相信大家可以了解更多关于STM32的库函数模型知识。于是就有了宏定义模块,将GPIOB,GPIO_Pin以及时钟使能寄存器都进行宏定义,这样我们在修改代码的时候就只需要修改我们宏定义的值就可以快速修改代码内容。
2024-03-01 12:17:11
773
1
原创 STM32第四节:自己写库——构建库函数雏形(第三节)
上节课我们讲解了如何实现 RCC 这个外设的寄存器结构体声明,把时钟相关的代码改成寄存器结构体操作的方式,以及编写函数库(端口置位以及复位函数),包括防止重复定义框架·,具体代码以及主函数的更新还有main函数代码的解释。本课我们学习如何更加系统的优化程序以及运用STM32官方给出的标准库。
2024-02-29 22:48:45
1200
3
原创 STM32第四节:自己写库——构建库函数雏形(第二节)
上节课讲解了 自己写库——构建库函数雏形 ,包括基本的宏定义(直接操作寄存器)以及使用结构体(库函数)。本节课我们讲解如何实现 RCC 这个外设的寄存器结构体声明,把时钟相关的代码改成寄存器结构体操作的方式,以及第二节内容。之前我们编写的函数是针对于GPIOB这个外设,那我们不妨新建两个驱动库文件,把宏定义,函数,声明什么的都放进去。于是就有了stm32f10x_gpio.c和stm32f10x_gpio.h文件。
2024-02-29 12:49:30
1402
2
原创 STM32第四节:自己写库——构建库函数雏形(第一节)
备份上一节的代码,打开stm32f10x.h文件,输入以下代码,这些代码通过宏定义#define定义了GPIOB端口的寄存器,通过编写地址再将地址赋给设定好的寄存器名称,即可以从该名称读取地址以及调用寄存器。//用来存放STM32寄存器映射的代码//外设 perirhral通过学习官方手册,我们可以发现,在GPIO寄存器地址映像中,GPIOx所含的7个寄存器都是32位,占用了四个字节,而且逐级递增。
2024-02-28 19:19:35
885
原创 STM32第三节:编写第一个程序使得LED灯亮起(附实物图)
通过上节课的学习,我们已经学会了如何在keil5 MDK中创建工程,那么本节课我们继续学习在上一节的工程中如何编写代码,使得指南者板上的绿,蓝,红灯亮起。
2024-02-21 17:36:44
1593
4
原创 stm32第二节:新建工程(寄存器版)
在介绍本节课程之前,先介绍取消代码的形式:第一种,我们可以使用下图形式进行代码的取消;但是我们可以通过#if 0 ……#endif进行取消,这是一个条件编译指令,表示如果条件为0(假),则编译器会忽略之间的代码块,即#if 0和#endif之间的代码不会被编译。这种方式可以用来暂时注释掉一段代码,而不需要删除它们。再转到我们所学的stm32,观察文件类型:如图所示,axf文件是通过仿真器下载到stm32板子上的,hex文件是通过串口传输。
2024-02-20 20:50:51
504
1
原创 stm32第一节:认识寄存器(野火指南者——STM32F103VET6)
Block 3 FSMC的bank1 ~ bank2 0x6000 0000 ~ 0x7FFF FFFF(512MB)Block 4 FSMC的bank3 ~ bank4 0x8000 0000 ~ 0x9FFF FFFF(512MB)GPIOx,随着x的增加,就多占用8个字节的空间内存。Cortex-M3内核(arm)——(I,S,D)——总线矩阵——外设,给有特定功能的,已经分配好地址的内存单元取别名的过程就叫。
2024-02-19 22:35:46
1664
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人