STM32
文章平均质量分 60
本人重新学习STM32的心得体会和记录,里面有部分基础讲解和代码例程讲解,希望能对自己和大家都带来一些帮助。
VCA821
混元太极拳嫡传弟子,擅长闪电五连鞭,讲武德,接化发样样精通,目前在修习辟邪剑法。
展开
-
STM32笔记--串口通信
今天重新学习了串口通信,但总体并没有太大收获,因为串口通信方式比较简单,代码也不是很难,因此在此只对串口通信代码分析,不过先贴上手册解释方便理解 简而言之,USART的操作就是在TDR和RDR两个寄存器上,还有就是USART的传输数据格式上,这个从代码中可以分析:首先是对gpio的配置,比较简单,而后就是对USART的配置,首先是传输速率,然后是传输的数据位长度,停止位,是否有校...原创 2018-05-30 16:17:46 · 762 阅读 · 0 评论 -
STM32笔记--DMA
DMA是直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU任何干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。(手册官方解释)简而言之就是在使用DMA的时候,CP...原创 2018-05-30 16:41:35 · 1321 阅读 · 0 评论 -
STM32笔记--ADC(DMA方式)
在上一次的博客中重新学习了DMA(附上链接:点击打开链接),这次我们便学以致用了,ADC的概念想必大家都是十分清楚了,模拟转数字,可以用在测信号,测电压,在我们的生活中有着十分巨大的作用,这次我们就来看看ADC又有哪些操作吧! ADC流程,首先ADC采集一个信号(信号范围大都为0-3.3V,ps:3.3V可通过更改Vref寄存器修改),每隔相同时间菜一次数值发送到一个可变16位...原创 2018-06-01 17:07:39 · 7882 阅读 · 6 评论 -
STM32笔记--液晶显示
前几天出去了,所以没有更新,今天是一个比较大的方面,就是液晶的显示,液晶显示器的应用为单片机带来了活力,平时我们写单片机,无法得到任何可视的现象,如IO的电平变化等,最简单的人机交互可以说是led灯和数码管灯,但其实说白了,液晶也是数据的传输,只不过是控制了比较小的灯并且以一个极快的速度更新以至于我们以为它并没有变化,由于液晶屏的种类,尺寸繁多,所以本次只讲原理,不再讲具体的液晶,笔者使...原创 2018-06-06 21:02:26 · 2450 阅读 · 0 评论 -
STM32笔记--IIC通信
今天重新看了IIC的通信协议,笔者之前对IIC的具体通信方式十分含糊,使用过的IIC通信器件有lcd1602和oled,因为直接使用的是库函数,所以对IIC的驱动和配置等都很含糊,而且IIC还分硬件与模拟,这次只分析硬件,模拟IIC后续补充。IIC具有引脚少,硬件实现简单的,可拓展性强的特点,现在被广泛使用再IC之间的通信,IIC具有如下特点:1.IIC有两条总线,一条双向串行总线SDL,...原创 2018-06-12 01:37:06 · 1692 阅读 · 0 评论 -
STM32笔记--SPI通信
相对于上次说的IIC,这次我们来回忆一下SPI,之前并没有过多深入了解SPI协议,所以这次再来记录一下,首先附上资料里的SPI定义:SPI,是英语 Serial Peripheral Interface 的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易...原创 2018-06-13 01:36:28 · 673 阅读 · 0 评论 -
STM32笔记--定时器(PWM产生)
今天看来定时器这一部分,现在做一下总结,STM32总共分有8个定时器,包括基本定时器,通用定时器和高级定时器,其中基本定时器为TIM6,TIM7;通用定时器为TIM2,TIM3,TIM4,TIM5;高级定时器包括TIM1和TIM8。下面总结三种定时功能:基本定时器:只能定时,只能上升计时,可产生中断,DMA请求和触发内部DAC。通用定时器:可定时,输入捕捉,输出比较,编码器接口,可上下计数,同样可...原创 2018-06-14 01:18:41 · 942 阅读 · 1 评论 -
STM32笔记--呼吸灯
昨天看了PWM的产生,今天就来尝试一下呼吸灯的制作,如果PWM理解比较透彻的话,呼吸灯的制作就十分简单,原理很简单,就是改变CCR寄存器的值,来按时间输出占空比不同的方波即可,原理十分简单,在这里附上定时器输出PWM的代码和中断函数中的代码(其中呼吸灯有个数组文件需要用matlab生成),在此也不多加赘述。 TIM3_Breathing_Init();void TIM3_Breat...原创 2018-06-14 19:15:58 · 1129 阅读 · 1 评论 -
STM32笔记--DAC(正弦波发生)
DAC,与ADC相对,是数字量转模拟量,经常用来作为信号发生器,这里DAC一定要详细记录,但其实原理还是相对简单。首先我们看一下DAC的触发源:DAC的触发源有6个定时器的更新时间和一个外部触发,一般外部触发我们用于DAC的直流产生,所以我们这次使用的是定时器触发。DAC的主要特性:(来自官方手册)●2个DAC转换器:1个输出通道对应1个转换器● 8位或者12位单调输出● 12位模式下数...原创 2018-06-14 20:54:54 · 30447 阅读 · 15 评论 -
STM32循迹避障小车制作代码详解(简单实现版)
写在最前:最近由于需要制作了一个循迹避障小车,制作比较简单但是还是出现了很多bug,因此在博客中记录一下,希望对后期需要制作的能有所帮助,小车由PWM信号+L293D驱动。(二轮驱动,第三轮为自由轮)要求:小车要求循迹避障,有两种避障策略,在循迹黑线上遇到障碍物停车,循迹黑线外遇到障碍物要避障(左转,右转,后退均可),循迹过程中要求不能出黑线之外。循迹原理:(红外探头+信号处理板)红...原创 2018-11-16 11:29:05 · 55131 阅读 · 117 评论 -
STM32笔记--RTC
今天再一次学习了RTC,只能说自己曾经看的有点走马观花,今天重新学习到了很多,同时自己也心血来潮用几个小时制作了一个STM32+OLED的电子时钟,电子时钟的制作和讲解将写在下个博客里,希望大家多来看和评论。下面我们来看看RTC的定义:RTC 提供了一系列连续工作的计数器,配合适当的软件,具有提供时钟-日历的功能。写入计数器的值可以设置整个系统的时间/日期。以下为RTC的相关函数和函数描述函数名 ...原创 2018-06-15 23:46:57 · 928 阅读 · 0 评论 -
STM32电子万年历制作详解(RTC实战)
首先附上效果图:博主在重温了STM32的RTC后心血来潮,决定用RTC在做个万年历,其实也不算万年历,就是可以实时显示当前时间,而且大家也都知道,STM32自带的RTC的精度实在让人不好意思说,大概20分钟会有40S的误差,不过对于体验理解还是十分有帮助的,这个作品大概耗时2小时左右(汉字字库生成耗掉我大半精力呀T_T)所以我们一起来记录一下这个作品。但是由于精力有限,所以只写出部分主要问题和易错...原创 2018-06-16 00:20:10 · 26498 阅读 · 130 评论 -
STM32汉字字模制作详解(OLED实战)
之前没有用过OLED来显示汉字,今天心血来潮想做一个RTC的万年历,想着就用OLED来用汉字显示一下,之前想的确实很简单,不就是制作字模然后调用显示嘛!但是今天还是用了很久,原因在于我是真的不知道怎么正确产生字模,最后还是弄出来了,但是在百度过程中没有发现有一个具体的教程,所以自己写一个,来帮助自己记忆和他人使用。首先说我试过的软件:软件1:用起来挺好用,但是博主实在不知道怎么设置,都试了一遍但从...原创 2018-06-16 00:54:40 · 22856 阅读 · 4 评论 -
ST-Link的internal command error问题的原因及解决方法
今天遇到很奇怪的问题,就是用的好好的ST-link突然不能用了,突然出现这种情况:这是由于stlink无法识别到芯片的情况,通过解决这个问题我找到几个原因和解决方法:1.电压问题电压过大或者过小都会导致ST-link无法识别,就会出现这种情况。这种情况复杂且比较多,所以不列举,如果不是下面的这个问题,那电压(即电路)问题可能会比较大。2.芯片睡眠,停机,待机模式我相信有很多人遇到这个问题,就是之前...原创 2018-06-18 00:25:23 · 34790 阅读 · 8 评论 -
STM32笔记--电源管理
为什么STM32需要电源管理:在很多应用场合,对电子设备的功耗要求非常苛刻。如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护。为此,大多数 MCU 都会提供电源管理单元来切换 MCU 的 运行模式,尽量降低器件的功耗。STM32将片上外设和内核以模块方式管理,如下图所示:(PS : ADC 使用独立的电源供电,以提高转换精度。CPU 核心、存储器及内置数...原创 2018-06-18 01:03:58 · 5366 阅读 · 1 评论 -
STM32笔记--SDIO(SD卡读取)
学习这里首先要了解一下SD卡基本资料:SD卡的协议部分太多,也比较复杂,建议资料:《Simplified_Physical_Layer_Spec.pdf》其主要复杂在繁多的命令,一共有64个命令,各个命令代表什么可查资料。我们代码中一般用到的是ARM官方给的SD卡的库,但是库中存在问题,...原创 2018-06-19 20:10:21 · 15152 阅读 · 0 评论