STM32学习记录
文章平均质量分 59
这是自己学习STM32F1的学习记录。所上传的代码本人均已测试及跑通。
康娜喵
理论与工程,性能与外表,我全都要!
展开
-
STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法
SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。原创 2023-05-19 13:56:11 · 2825 阅读 · 1 评论 -
STM32学习过程记录10——使用STM32CubeMonitor可视化调参
零.下载与安装跳过,基本操作。这个软件st的官网里有,安装好后,打开是这个样子的:这个软件还是有额外很多功能的,不过这个用来快速使用一下,免去写串口协议发送到上位机的麻烦。一.使用首先确保有一块ST-Link。1.1 选择变量双击打开后,创建一个新配置然后添加信息然后记住你创建的变量组的名字:1.2 共享变量keil里面要随便选一个Debugger,解除对STlink的占用。选择你那唯一 一个的STLINK1.3 读取变量选择你那个st-link1.4 查看变量原创 2022-05-02 16:27:06 · 1160 阅读 · 0 评论 -
STM32学习过程记录9——使用printf
零.通用说明需要修改代码中的串口句柄or变量,来适配输出串口(硬件)代码是否能使用,有可能和编译的优化等级有关,也就是这个:需要#include "stdio.h"输出模式可以修改发送函数,比如中断、DMA(不推荐)等方式发送,默认正常发送一.HAL库发送延迟可以改低,可以更改发送代码适配各种库struct __FILE{ int handle;};FILE __stdout;int fputc(int ch,FILE * f){ HAL_UART_Transmit(原创 2022-05-02 10:48:00 · 631 阅读 · 0 评论 -
STM32学习过程记录8——蜂鸣器
零之前言最近想用无源蜂鸣器来播放曲子,但是看了好多博客讲的都是马马虎虎,没有讲的太清楚,所以我只好自己重新学习了一下,音乐发声的原理(因为硬件基础够啦QAQ)。发声原理原理就是这个,人之所以能听见声音,是因为声音在震动。那么不同的震动频率带给我们的就是不同的声调。...原创 2020-02-14 20:45:53 · 7250 阅读 · 6 评论 -
STM32学习过程记录7——IIC协议
第七课,IIC通信协议目录第七课,IIC通信协议一.IIC的原理1.硬件原理2.各种状态二.IIC的代码实现0宏定义代码①初始化IO口,可将两个口都写为输出口。且将两根线电压拉高。②起始、停止信号的编写③主机的接收应答信号:④ACK和NACK的发送⑤发送一个字节(8位)⑥接收一个字节(8位)三.模板!1.宏定义2.IIC一....原创 2019-07-11 11:04:52 · 1304 阅读 · 0 评论 -
STM32学习过程记录6——内部定时器+ADC
第六课,定时器中断(内部定时器的使用)目录第六课,定时器中断(内部定时器的使用)一.ADC的初始化1.ADC的初始化2.ADC的读取代码二.快捷模板ADC的初始化:ADC读取模板1:(单次)ADC读取模板2:(平均)一.ADC的初始化1.ADC的初始化过程:①开启端口时钟和ADC时钟,设置端口为模拟输入。② 复位ADC,同时设置ADC分频因子(...原创 2019-06-11 17:53:13 · 544 阅读 · 0 评论 -
STM32学习过程记录5——内部中断+PWM
目录第五课,定时器中断(内部定时器的使用)一.32的定时器中断简述1.功能模式简述:2.时钟周期计算:3.时间值的寄存器二.寄存器的设置过程1.过程简述2.配置代码(与上面对应)3.快捷模板第五课,定时器中断(内部定时器的使用)一.32的定时器中断简述1.功能模式简述:三种记数模式,对应值预设值的不同:一般基本上都是选用的内部时钟。2...原创 2019-06-10 15:41:21 · 997 阅读 · 0 评论 -
STM32学习过程记录3——串口加中断
第三课,串口通信(URAT和NVIC中断优先级管理)目录第三课,串口通信(URAT和NVIC中断优先级管理)一.基础知识1.串口通信的分类2.中断的优先级二.实例操作1.中断的配置2.串口的配置3.串口中断的实际操作:4.串口IO口的重映射:一.基础知识1.串口通信的分类因为同步的是不管什么直接发送,通过一条时钟线来确定数据的先后关系,保持它的有...原创 2019-06-04 11:03:02 · 632 阅读 · 0 评论 -
STM32学习过程记录2——端口的输入设置
第二课,按键扫描(端口的输入设置)目录第二课,按键扫描(端口的输入设置)一.总诉二.快捷模板一.总述emmm似乎感觉这一章和第一章没啥太大的区别,就是改一改函数的参数,与第一章大同小异,不过多了一个关闭jtag,这个先留着以后解决。 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭jtag,...原创 2019-06-03 20:33:04 · 782 阅读 · 0 评论 -
STM32学习过程记录1——端口的输出设置
从今天起,开始学习32,这个作为学习资料的整理。有51的基础,具体功能的实现写在这儿,只会写32的特殊的地方。所以具体不会太详细(可能也有错,如果您顺路看的时候发现了错误,请斧正,感激不尽)目录第一课,跑马灯(端口的输出设置)一.端口配置1.个人理解的概念2.端口的配置3.头文件的定义二.程序的输出代码三.头文件的定义方法四.该节涉及到的资料和未整理部分1....原创 2019-06-03 14:54:39 · 2762 阅读 · 5 评论 -
STM32学习过程记录4——外部中断
第4课,外部中断一、32的外部中断简述32的中断可能有很多个,其通过端口映射,可以将很多端口都作为外部中断端口。其次,其中断数受它的中断通道的数目的影响,有两种中,一种是多对一,一种是一对一。多对一是可以通过多个中断线来触发同一个中断口的函数。二、中断的设置1.设置简述中断是基于一个IO口的,所以需要一个输入IO作为中断IO口,其关系为:将IO口映射到中断寄存器即可,他...原创 2019-06-05 15:58:52 · 406 阅读 · 0 评论