STM32作者自用自学笔记
学习中记的笔记
代码好难敲啊
计算机小菜鸡一枚
展开
-
12,SPI
判断一个设备是不是SPI通信,看是否有这几个线:SCK,CS,MISO,MOSI。W25Q64储存空间:8M字节=128块=2048扇区。一块=16扇区,4096*16字节 一块=64KB。Flash芯片:W25Q64,可以看成一个储存器。W25Q64芯片和单片机之间的通信方式是SPI。M主机,I输入,S从机,O输出。MISO(SDI):主机输入,从机输出。MOSI(SDO):主机输出,从机输入。SPI:串行同步全双工,主从通信。一扇区=16页 4096字节。SCK(SCL):同步时钟。原创 2024-06-27 20:32:45 · 163 阅读 · 0 评论 -
11.利用RTC制作实时时钟
定时器的配署:不可以直接访问,因为定时器相关的寄存器在备份区域。RTC 从配置上分两大部分—时钟的配置、定时器的配置。4、需要开中断就开(秒中断问钟中断).不需要就不开。a)开电源控制器以及备份区的时钟。b)电源PWR CR的DBP置1。直接由RCC的BDCR来配置时钟:时钟源的选择。1、使能备份区域访问— PWREN、BKPEN。3、设置计数器计数值(设置当前时间、更新时间〉2、选定时钟源配置分频〔实现1HZ时钟频率)时钟的配置:可以直接访问。原创 2024-06-24 21:21:25 · 289 阅读 · 0 评论 -
10,PWM
想改变周期和频率:需要调节定时器的时钟源和重装栽植。想改变占空比:调节定时器的比较值。计数器:根据时钟频率计数。时钟源:为计数器提供时钟。重装栽植:计数的最大值。原创 2024-06-24 17:07:13 · 105 阅读 · 0 评论 -
9,DMA可以获取光照烟雾值
DMA概述:直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA 控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。ADC多通道问题需要用到DMA,与ADC相比,省去了获取AD转换数值(转换后数据存储在数据寄存器中,需要把数据拿出来)的步骤。每个外设与DMA之间的关系都是定好的,DMA:数据传输高速通道。原创 2024-06-23 14:58:28 · 187 阅读 · 0 评论 -
8,ADC在本项目中获取烟雾和光照值
ADC的处理数据流程︰数据从输入通道(in0-in15、in16、in17)进来.进入到规则通道排序.模数转换器开始转换数据.数据转换之后来到数据寄存器。使用场景:遇到ADC类型的传感器(输入模拟量的传感器),采集数据需要使用ADC将模拟量转化为数字量。数字量传感器:输出的数据是一个数字,特定的通信接口(usart spi iic..)模拟量传感器:输出的数据是一个连续的电压变化,统一的通信接口 (adc)单次:模数转换器把规则通道的第一个通道转换一次。连续:模数转换器一直澈换规则通道的第一个通道。原创 2024-06-21 17:00:20 · 237 阅读 · 0 评论 -
7,KQM模块的驱动
1,查资料,查模块的通信接口(单片机和模块之间采用什么方式通信)硬件接口,驱动方式(串口驱动用串口发送接收PC10,PC11)传输数据,本项目中不要用串口3,串口3是留给wifi的,在硬件上已经固定了, 所以其他的任选一个用串口4传输数据,只用了三个脚:VCC GND TX,原创 2024-06-20 17:06:22 · 253 阅读 · 0 评论 -
5,串口编程---实现简单的用串口发送接收数据
1,等待发送寄存器为空,也就是等待上一次数据发送完毕,所以需要一个能够获取串口的寄存器状态的函数,查看串口相关的库函数找到USART_GetFlagStatus (检查指定的 USART 标志位设置与否),等待发送寄存器为空:由下图知,当TXE等于1,即==SET,数据已经被转移到移位寄存器,表示数据已经发送完毕,本开发板STM32F103ZET6有5个串口,用串口1作调试串口,因为串口通信和一键下载电路连接到了串口1上面,所i用串口1做调试串口。2,写串口发送和接收函数。2,写串口发送和接收函数。原创 2024-05-28 21:42:22 · 693 阅读 · 0 评论 -
4,八种GPIO模式
仅作自学参考,如有冒犯,联系会删。原创 2024-05-27 20:54:09 · 229 阅读 · 0 评论 -
6,串口编程———通过串口助手发送数据,控制led亮灭
/功能:串口助手每次发送数据格式:@0000&// 第二个字节控制LED1亮灭// 第三个字节控制LED2亮灭// 第四个字节控制LED3亮灭// 第无个字节控制LED4亮灭//要求:代码能够一直运行,能够接收多字节数据上节讲了串口的基本发送接收数据,本节应用一下。因为功能要求代码能够一直运行,所以一般会想到把上面这个功能函数写在while(1)循环里,但是。原创 2024-06-02 21:43:19 · 694 阅读 · 0 评论 -
3,外部中断(EXTI)的配置过程
1,开时钟,PA的时钟,AFIO时钟2,确定EXTI0中断线的输入源为PA03,触发方式的选择4,配置中断屏蔽寄存器5,通过NVIC来进行中断的优先级配置,并开启中断通道6,编写中断服务函数准备工作:,查看手册:芯片相关资料/参考手册--中文9.2.2外部中断之前配置GPIO(IO配置)这次配置EXTI(外设配置)(包括配置时钟+外设自身两部分)原创 2024-05-20 22:15:30 · 268 阅读 · 0 评论 -
2,利用库函数实现按键控制灯的亮灭
找到RCC库函数,需要使能APB2外设时钟,用到函数RCC_APB2PeriphClockCmd。1,查看数据手册:芯片相关资料/STM32固件库使用手册的中文翻译版。GPIO_Init()的第二个参数是指向结构体的指针,3,应用函数 ,通过控制端口的电平状态控制灯的亮灭。下滑找到该函数的参数返回值等相关信息。2,配置GPIO,查找GPIO库函数。原创 2024-05-19 22:19:24 · 214 阅读 · 0 评论 -
1,用寄存器操作闪烁led灯
端口PE2配置位(y = 2),对应看8-11位,根据模式配置为(0011)端口0-7在低位CRL,端口8-15在高位CRH,提供时钟:RCC APB2 外设时钟使能寄存器。控制接口PE的为第6位,开时钟,将第6位置为1。根据原理图看出led1灯为IO引脚为PE2。端口PE2输出数据(y = 2),综上所述:led.c中代码。原创 2024-05-19 17:44:27 · 411 阅读 · 0 评论