- 博客(24)
- 收藏
- 关注
原创 STM32-DMA详解
DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输我们知道CPU有转移数据、计算、控制程序转移等很多功能,系统运作的核心就是CPU,CPU无时不刻的在处理着大量的事务,但有些事情却没有那么重要,比方说数据的复制和存储数据,如果我们把这部分的CPU资源拿出来,让CPU去处理其他的复杂计算事务,是不是能够更好的利用CPU的资源呢?
2023-10-20 10:10:50
344
原创 STM32-内存管理实验
分配原理:当指针p调用malloc申请内存的时候,先判断p要分配的内存块数(m),然后从第n项开始,向下查找,直到找到m块连续的空内存块(即对应内存管理表项为0),然后将这m个内存管理表项的值都设为m(标记被占用),最后,把最后的这个空内存块的地址返回指针p,完成一次分配。free函数先判断p指向的内存地址所对应的内存块,然后找到对应的内存管理表项目,得到p所占用的内存块数目m(内存管理表项目的值就是分配内存块的数目),将这m个内存管理表项目的值都清零,标记释放,完成一次内存释放。u8类型,32字节对齐。
2023-08-29 15:41:38
250
原创 STM32—Flash闪存
快闪存储器(flash memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。它是一种非易失性存储器,即断电数据也不会丢失。
2023-08-29 09:50:37
1348
原创 正点原子 第30章 SPI通信实验
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32F4也有SPI接口。由于W25Q128支持以任意地址(但是不能超过W25Q128的地址范围)开始读取数据,所以,这个代码相对来说就比较简单了,在发送24位地址之后,程序就可以开始循环读数据了,其地址会自动增加的,不过要注意,不能读的数据超过了W25Q128的地址范围哦!
2023-08-22 10:53:55
600
原创 正点原子STM32串口通讯实验详解
正点原子的例程中通过语句USART_ITConfig(USART1, USART_IT_RXNE, ENABLE)开启相关中断,当读数据寄存器非空,即单片机一接收到数据时,便会触发串口1的中断函数。改协议的核心是定义了一个16位的变量USART_RX_STA,该变量的0-13位用于存储接收到的数据,最后的14、15两位作用在于,当14、15位依次接收到da0x0d和0x0a时,依次将这两位置1,作为判断数据是否接收完的标志位。
2023-08-19 15:48:18
1689
原创 正点原子STM32F103学习笔记(八)——串口
起始位数据位(8位或者9位)奇偶校验位(第9位)停止位(1,15,2位)波特率设置发射器控制(发射器时钟)和接收器控制(接收器时钟)受到同一个单元控制。
2023-08-19 14:20:14
898
原创 第十七章 串口通信实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
RE为接收使能位,用法同TE。当接收到从电脑发过来的数据,把接收到的数据保存在数组g_usart_rx_buf中,同时在接收状态寄存器(g_usart_rx_sta)中计数接收到的有效数据个数,当收到回车(回车的表示由2个字节组成:0X0D和0X0A)的第一个字节0X0D时,计数器将不再增加,等待0X0A的到来,而如果0X0A没有来到,则认为这次接收失败,重新开始下一次接收。需要注意的是,最后一行代码调用函数HAL_UART_Receive_IT,作用是开启接收中断,同时设置接收的缓存区以及接收的数据量。
2023-08-19 10:46:35
839
原创 IIC实验 摘自【正点原子】STM32F103 战舰开发指南V1.2
1)实验平台:正点原子stm32f103战舰开发板V42)平台购买地址3)全套实验源码+手册+视频下载地址:第三十五章 IIC实验本章,我们将介绍如何使用STM32F103的普通IO口模拟IIC时序,并实现和24C02之间的双向通信,并把结果显示在TFTLCD模块上。本章分为如下几个小节:35.1 IIC及24C02介绍35.2 硬件设计35.3 程序设计35.4 下载验证35.1 IIC及24C02介绍35.1.1 IIC简介IIC(Inter-Integrated Circuit)
2023-08-18 16:25:37
362
1
原创 STM32入门教程
单片微型计算机简称单片机(MCU(MicrbControl Unit)),我们自己的个人计算机中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已。单片机又有8位的如51单片机、16位的如MSP430、32位的如STM32,通常我们说的多少位通常指的是内核(CPU)一次处理的数据宽度。也就是说内核一次处理的位数越多单片机的计算速度就越快,性能也就越强悍。
2023-08-11 10:45:47
782
1
原创 STM32-SPI通信(W25Q64芯片简介,使用SPI读写W25Q64存储器芯片)
SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)。同步,全双工;支持总线挂载多设备(SPI仅支持一主多从);在不同情况下,通信线的名称可能有所变化:MOSI:DI(对从机而言);MISO:DO(对从机而言);
2023-07-30 19:21:05
3615
1
原创 STM32-SPI详解
SPI 规定了两个 SPI 设备之间通信必须由主设备 (Master) 来控制次设备 (Slave). 一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) 来控制多个 Slave 设备, SPI 协议还规定 Slave 设备的 Clock 由 Master 设备通过 SCK 管脚提供给 Slave 设备, Slave 设备本身不能产生或控制 Clock, 没有 Clock 则 Slave 设备不能正常工作。
2023-07-29 16:07:11
7832
1
原创 STM32—Flash读写详解
本文主要介绍STM32多种的内部Flash读写方式和读写长文件的功能函数怎样编写。阅读完本文可以使你能够正常的完成Flash读写操作。不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了1024K 字节。STM32 的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等 3 部分组成。主存储器:该部分用来存放代码和数据常数(如 const 类型的数据)。对于大容量产品,其被划分为 256 页,每页 2K 字节。注意,小容量和中容量产品则每页只有 1K 字节。
2023-07-28 10:07:05
6167
2
原创 STM32ADC详解
STM32f103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。ADC的输入时钟不得超过14MHz,其时钟频率由PCLK2分频产生。
2023-07-25 23:01:08
1890
原创 STM32定时器
STM32的定时器主要分为三种:高级定时器(TIM1/TIM8)、通用定时器(TIM2-TIM5)、基本定时器(TIM6/TIM7),基本功能不多做介绍,到处都有。
2023-07-23 09:46:18
4588
原创 Systick滴答定时器详解
temp&(1<<16)取出的是CTRL寄存器的COUNTFLAG位,如果该位为0,说明没有计数到0,0取反为1,1&&1为真,继续循环,如果COUNTFLAG位为1,说明已经计数到0了,1取反为0,1&&0为假,则退出循环,说明一次计时时间到达。Systick定时器常用来做延时,或者时系统的心跳时钟。行数18:CTRL寄存器的CLKSOURCE位置1,选择内核时钟,TICKINT位置1,SysTick 倒数到 0 时产生 SysTick 异常请求,ENABLE位置1,SysTick 定时器的使能。
2023-07-20 09:21:11
1285
转载 STM32PWM知识详解
本人在学习STM32过程中发现网上的PWM相关知识比较散乱,对于小白或新手而言会有很多不了解的地方。因此,这里结合自己的学习过程,将PWM这一版块的知识整合,如有错误之处,请批评指正!
2023-07-19 15:19:25
7220
转载 STM32定时器详解
定时器作为微控制器不可缺少的外设,在STM32中也是如此。相信不少初学者学到定时器的时候对STM32的学习热情就大打折扣甚至想要放弃了,因为这一部分知识确实比较复杂。但是,如果你在之前对GPIO、串口通信、外部中断的学习中把这些外设掌握了的话,学习这个新知识并不难。例本章共计1万余字,从STM32定时器的原理、寄存器介绍、定时器配置以及定时器的几个常用的功能(如定时器中断、定时器输出比较PWM波形、定时器输入捕获测电平长度、定时器编码器模式应用等)的使用方法来教大家掌握定时器这一外设。
2023-07-18 13:34:27
5882
1
转载 EXTI(外部中断)
EXTI 可分为两大部分功能,一个是产生中断,另一个是产生事件,这两个功能从硬件上就有所不同。首先我们来看图中红色虚线指示的电路流程。它是一个产生中断的线路,最终信号流入到 NVIC 控制器内。
2023-07-16 21:42:10
2347
2
转载 GPIO介绍
CRH 控制端口的高八位,CRL 控制端口的低八位。由于 STM32 的 GPIO 引脚具有第二功能,因此当使用复用功能的时候,也就是通过其他外设复用功能输出信号与 GPIO 数据寄存器一起连接到双 MOS 管电路的输入,其中梯形结构是用来选择使用复用功能还是普通 IO 口功能。当 GPIO 引脚用于 ADC 采集电压的输入通道时,用作“模拟输入”功能,此时信号是不经过施密特触发器的,因为经过施密特触发器后信号只有 0、1 两种状态,ADC 外设要采集到原始的模拟信号,信号源输入必须在施密特触发器之前。
2023-07-16 16:43:34
942
1
转载 GPIO的地址和寄存器映射
结合上面的代码和结构体的定义,我们就不难看出,只要将结构体赋值一个具体的外设基地址,就能够通过4字节偏移的方式将外设绝对地址抽象为结构体偏移地址,从而达到访问结构体等于访问硬件绝对地址一样的效果,没错,寄存器就是这么来的,我们后面的章节将不再分析寄存器由来,因为都是通用的,不过会以每一个外设的硬件地址开始分析。重点是看init函数以及寄存器地址映射,C语言封装,要是那些都理解了,剩下的就是用了,其实也就达到了知其然知其所以然,工作忙,手动肝也是很累,更新较慢大家见谅,太难了加油啊,大家共勉!
2023-07-16 15:55:52
1761
2
原创 手把手教你用Keil5新建STM32工程
STARTUP要选择CMSIS\startup\arm中的startup_stm32f10x_hd.s、startup_stm32f10x_ld.s、startup_stm32f10x_md.s三个。确定之后跳出一个窗口,直接关掉(这是让选择启动引导等的,我们已经下载的库里有,所以跳过这一步)。将官方库中Libraries\STM32F10x_StdPeriph_Driver中的 inc 和src文件夹 复制到刚才新建的FWLIB文件夹中。下载之后安装,这里的芯片支持包对应标准库的开发。
2023-07-11 19:51:29
4619
4
转载 STM32(一)STM32简介
一、什么是STM32?意法半导体(ST)集团于1988年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司,是世界最大的半导体公司之一。
2023-07-11 14:57:47
6297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人