![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
林中明月间
这个作者很懒,什么都没留下…
展开
-
LCD仿真卡在delay_ms问题
STM32学习时间不长,今天LCD屏幕到了,要把之前的程序改到现在的开发板上。在LCD_Init()函数执行卡住,仿真调试后找到是卡在了delay_ms()里,开始我还以为是代码有问题,重新添加了例程的代码,无果。后来仔细查看代码才发现,delay_init()函数被我放到了LCD_Init()的后面,而LCD初始化使用到了延时函数,调整后解决。虽然是一个小的问题,自己解决后也会很开心。而且也...原创 2020-04-05 22:11:51 · 1225 阅读 · 0 评论 -
ESP8266三种工作模式
三种工作模式即STA、AP、STA+AP;对于前两种都比较好理解,主要是第三种的用途。今天看到,积累一下。STA模式(Station):工作在STA模式下的8266就像是一个接收机一样,它可以接收来自无线路由器发出的信号,实现了8266通过接收路由器的信号而能够连接互联网,如果把8266安装在硬件设备上,就可以实现硬件设备的远程控制。可以理解为此时8266是主动去连接别人,即此时的8266...原创 2020-03-12 23:01:30 · 17112 阅读 · 2 评论 -
SPI实验
一、简介 关于SPI的特征: 关于4根线中除了数据线与时钟线的片选信号,从选择脚管理: 4根线中的时钟信号:SPI_CR的CPOL和CPHA位确定了数据在第几个边沿以及是上边沿还是下边沿触发,并且将数据进行锁存。下面举个例子来帮助理解: 配置时钟信号与极性的目的就是与从机的时钟与极性相严格匹配。之后就是传输数据的格式...原创 2020-02-19 19:30:00 · 552 阅读 · 0 评论 -
RS485实验
一、简介485本质上也是一种串口,与RS232相同,不过是对于电压、阻抗的定义有区别,造成的应用场景也不同。RS232是早期出现的接口电路,其应用范围最广,但是RS232接口有哪些缺陷呢? 之后出现了485接口: 485接口对RS232的缺点进行了优化,它所具备的特点为: 485的结构图如下,描述了将微控制器中的电平信号转换为485的电...原创 2020-02-13 12:41:58 · 817 阅读 · 0 评论 -
STM32中IIC实验
一、简介在之前学习的时候也接触过IIC这个词。不过一直没有深入学习与理解。首先,I2C的简介如下:要了解的一些知识:①:空闲状态:②③:开始信号与停止信号:④:应答信号⑤:数据有效性如何判断当前传输的数据是否有效,以及判断数据有效性的规定如下:⑥:数据的传送二、实验本次要操作EEPROM(24C02),24C02的原理图如下:...原创 2020-02-10 12:11:17 · 890 阅读 · 0 评论 -
STM32DAC转换
一、简介类似于ADC模数转换,DAC有许多相似的地方。DAC模块的主要特点如下: 需要注意的几点是:PA4、PA5需要设置为模拟输入,而不是模拟输出,否则将不能产生正确电压。采用哪种对齐方式就写到相应寄存器中:DAC触发的具体描述:硬件连接如下:具体的设置步骤:...原创 2020-02-08 12:21:30 · 679 阅读 · 0 评论 -
STM32内部温度传感器实验
由于本次实验基于ADC转换实验,所以有很多东西在ADC的基础上实现。内部温度传感器一、概念上次见过温度传感器在通道16的图:关于内部温度传感器的描述:内部温度传感器的使用事项:第二项就是关于如何使用模数转换测量当前温度值的,内部温度感应器肯定测量得到电压值,将电压的连续量转换获得离散量。再通过电压与温度之间固定的关系,得到...原创 2020-02-07 19:07:55 · 2160 阅读 · 0 评论 -
STM32ADC转换
ADC模数转换一、概述ADC翻译过来是模数转换,意思就是将外部世界采集到的模拟量的数据信息通过ADC变为计算机可以识别的数字信号。STM32的ADC具有以下特点: STM32最多所带的3个ADC控制器的ADC通道与引脚对应关系:注:有PF引脚的为144引脚的芯片(21个),如果小于144位,如64位、100位的只有16个外部通道(21个-5个PF引脚); 通道分...原创 2020-02-06 20:04:21 · 3162 阅读 · 0 评论 -
待机唤醒实验
待机唤醒实验一、概念待机唤醒可以很容易从字面意思理解,嵌入式设备可用资源较少,所以合理控制功耗也是衡量性能的一个指标STM32的低功耗模式可以分为一下三种: 最后两条,在运行模式下,就是指没有采用低功耗模式的情况下,如何降低功耗。Stm32三种低功耗模式对应需要的设置以及中断唤醒方式如下,本次实验使用WKUP(固定是PA0)唤醒待机模式的STM32:二 、待机...原创 2020-02-03 16:58:41 · 511 阅读 · 1 评论 -
RTC时钟
RTC实时时钟一、概念后备区域是指STM32待机的时候还可以保证时钟运行,时间准确。RTC所采用的时钟源:一般使用比较准确的外部时钟源RTC工作原理图: 从上图可以将RTC划分为两部分:后备寄存器就是BKP备份寄存器: RTC相关的寄存器::RTC控制寄存器高位:用来使能或者禁止溢出、秒、闹钟中断。:RTC控制寄存...原创 2020-01-29 13:04:15 · 634 阅读 · 0 评论 -
USMART组件
USMART调试组件一、原理首先,啥是USMART啊?简单来说就是通过串口与开发板进行交互的工具。使用USMART的目的是减少使用J-LINK调试或者修改代码输入参数再进行下载等操作,通过串口传递参数,从而简化程序修改过程以及减少FLASH损耗。USMART调试过程如下:USMART具有的特点: USMART文件组如下: 二、实验实验...原创 2020-01-28 18:25:51 · 1983 阅读 · 0 评论 -
定时器输入捕获实验
定时器输入捕获实验概述这个实验终于用到的是最后一个部分:捕获部分:每次捕获过程是如何实现的?整体过程是上面这个图,可以划分为四个部分,下面按照四个部分分别研究。步骤一:输入捕获滤波器设置了采样次数,在捕获时过滤抖动。 步骤二:捕获上升沿或是下降沿步骤三:一般情况就将IC1映射至通道1;IC2映射到通道2.通道四:分...原创 2020-01-25 20:29:09 · 235 阅读 · 0 评论 -
PWM输出实验
PWM输出实验一、原理本次采用的是右下角输出部分。时钟来源:内部时钟(CK_INT)。PWM工作过程: 例如:向上计数时,捕获/输出寄存器比较当前值,如果当前值低于设定值,输出低电平,高于设定值,则输出高电平。当计数值达到重装载值时,变为0.由此可以输出连续的波形。注:PWM模式1和PWM模式2的区别:模式1:无论是向上还是向下计数,只要CNT&l...原创 2020-01-25 10:57:21 · 1626 阅读 · 0 评论 -
定时器中断实验
回顾实验内容需要用到的是上半部分:配置:内部时钟、预分频系数、重装载值、计数器工作方式。内部时钟选择:APB1预分频系数不为1,则*2输出。时钟计算方法如下:时钟常用寄存器及库函数:: CNT:16位寄存器,此寄存器存储计数器当前的值。:::设置计数方式等:总体上还是实现上面功能需要配置的寄存...原创 2020-01-23 19:03:51 · 428 阅读 · 0 评论 -
STM32定时器(通用定时器)原理
STM32F10ZET6内部有三种定时器,分别是:高级定时器,通用定时器,基本定时器。他们的区别如下图:本次采用通用定时器。STM32F4系列有32位定时器。通用定时器的特点: 功能特点描述中的计数模式分为向上计数模式、向下计数模式、中央对齐模式:通用定时器内部原理图如下:(TIM_CH1/CH2为独立通道,此处省略了CH3/CH...原创 2020-01-23 12:07:47 · 3469 阅读 · 1 评论 -
窗口看门狗实验
窗口看门狗一、窗口看门狗的定义及窗口看门狗和独立看门狗区别是什么? 总结一下就是独立看门狗只有下限,在下限前喂狗即可使程序不被复位;而窗口看门狗有上限和下限,喂狗要在上限与下限之间。具体窗口看门狗工作顺序如下:总结一下就是: 窗口看门狗的超时时间的计算: 既然已经有独立看门狗,为何还需要窗口看门狗?窗口看门狗可以使时间控制得更精确,可以处理独立...原创 2020-01-22 16:07:31 · 859 阅读 · 0 评论 -
独立看门狗实验
看门狗实验概述也就是保证程序能正常执行,如果程序执行异常,可以使系统复位。 STM32看门狗的分类: 这次主要学习独立看门狗的相关知识,独立看门狗的功能描述以及原理如下:初始化具体设置如下:...原创 2020-01-21 13:49:20 · 231 阅读 · 0 评论 -
外部中断
外部中断概述 这么多IO口,怎么都可以产生中断请求?答案是映射。这样GPIOA-G的0-15就映射到EXTI0-15 共16个中断线 16*7=112。但是在同一时间只能有一个IO口映射到中断线。这些中断的中断服务函数怎么分配的呢? 从表中可以看出:EXTI0-EXTI4有独立的中断处理函数,而EXTI5-9共用一个中断处理函数,EXTI10-15共用一个中断处理...原创 2020-01-17 22:26:56 · 458 阅读 · 0 评论 -
ISP下载
今天记录一下我用ISP下载方式遇到的一些问题。之前买的一个STM32最小开发板,开始使用ISP下载方式一直没有弄好,后来使用ST-LINK下载程序也就告了一个段落,没有仔细研究。今天又遇到同样问题的兄弟,现在又开始整理一下,顺便记录一下遇到的问题。 问题现象:显示芯片超时无应答,无法连接。可能的原因:1.这个位置没有设定为正确的方式。2.串口下载程序接口接错:...原创 2020-01-14 19:18:46 · 4362 阅读 · 0 评论 -
中断优先级
中断优先级分组方法以及中断强度优先级和响应优先级的关系:注意:例如:已经设置好分组为2 抢占和响应优先级分别为10 10即抢占优先级为2,响应优先级也为2;如果这时改变分组为3,则抢占优先级为101 0即抢占优先级为5,响应优先级为0,已设置好的中断就会混乱设置中断优先级可以使用库函数实现:以及中断初始化函数:总结一下中断优先级设置:具体还是要在...原创 2020-01-13 13:36:17 · 3921 阅读 · 0 评论 -
端口复用与重映射
端口复用基本定义 注:内置外设:除了内核都是外设,例如ADC DAC等。 PA9 PA10就是端口复用,只用通过端口复用,才可以实现丰富强大的外设功能以PA9 PA10复用为例: 端口重映射基本定义 例如:PA2 PA3为串口2的发送 接收引脚,但也可以映射到PD5 PD6引脚端口重映射配置过程如下:即...原创 2020-01-12 19:51:10 · 759 阅读 · 0 评论 -
J-LINK/ST-LINK调试
J-LINK调试一、J-LINK调试原理总结一下就是:调试模块“中断”内核正在运行的程序等待被查询,查询结束后,内核 继续正在进行的工作。串行接口即为SWD。-2根数据线 而JTAG调试需要5根。具体介绍如下:SWD和J-LINK具体使用的端口及映射引脚:设置调试口可以使用库函数,在stm32f10x_gpio.h中有GPIO_PinRemapConfig()函数...原创 2020-01-12 18:46:39 · 1604 阅读 · 0 评论 -
时钟系统
前几天也算是开心地玩耍了几天,又加上考了一门试,一直没有时间继续学习(其实是因为懒)。今天继续学习偏理论方面的知识-Systick定时器。一、什么是Systick定时器?注:1.倒计时器就是设定初始值,定时器在初始值的基础上递减。让我想到了C++中设置的哨兵… 2.睡眠模式下也可以工作就比通用计时器节省了大量系统资源二、Systick相关寄存器...原创 2020-01-11 09:43:05 · 264 阅读 · 0 评论 -
按键实验
按键输入实验:首先是硬件连接,如下图:因为是按键输入,所以先看可以选择的输入操作方式,类似于GPIO输入方式:实验步骤基本如下:但是按键扫描涉及到一个问题,就是按键按下去的时候是把它当成一直按键按下的状态还是只当成一次按键按下,这就是支持连续按和不支持连续按的问题。支持连续按的一般思路如下:不支持连续按的思路如下:不支持连续按比上一个多了一点就是stat...原创 2020-01-02 21:53:58 · 2401 阅读 · 0 评论 -
蜂鸣器实验
蜂鸣器实验:今天开始进行下一个实例学习—蜂鸣器实验。蜂鸣器实验和LED实验有许多相似的地方,比如都是操控GPIO口实现的。首先,先认识一下蜂鸣器,精英板上搭载的是有源蜂鸣器,有源指的是自带了振荡电路,所以接电后可以发声,无源蜂鸣器则需要外部提供方波驱动,才可以发声。在设计硬件电路时,需要注意开发板所能提供的电流大小非常小,不能直接用来给蜂鸣器供电。需要接一个三极管,作为放大电路。...原创 2020-01-02 14:13:22 · 1957 阅读 · 0 评论 -
寄存器版跑马灯实验续
这篇博客是STM32学习之路(三)的后续,我尝试用BRR和BSRR实现控制IO口输出,其他内容基本一样,只有main.c主函数中进行了改动。代码如下:#include "stm32f10x.h"#include "delay.h"#include "led.h"int main(void){ delay_init(); led_init(); while(1){ GPIO...原创 2020-01-01 10:19:26 · 224 阅读 · 0 评论 -
位操作版本跑马灯实验
位操作版本跑马灯实验使用位带操作操作IO口,可以在之前工程的基础上,特殊之处在于它使用了正点原子提供的三个常用文件delay,sys,usart中的sys文件,如下图,在sys.h中有很多宏定义。这种地址映射等很多,具体代码上除了基本的使能IO口,设置工作方式,就是编写主函数了,我把代码写在下面:#include "stm32f10x.h"#include "LED.h"...原创 2019-12-31 21:35:13 · 414 阅读 · 2 评论 -
寄存器跑马灯实验
寄存器版本跑马灯实验 调用库函数本质上也是修改寄存器特定位的值来实现功能的,库函数能实现的操作,寄存器基本上都可以完成。下面我们用寄存器操作实现跑马灯功能。 创建工程等与之前工程创建相同,注1:寄存器操作要尽量不影响其他位的值,如:要使能APB2,在stm32f10x.h中查找到RCC_TypeDef结构体:那么,怎么只改变这一位呢?应该采用或运算来...原创 2019-12-31 21:33:18 · 824 阅读 · 0 评论 -
串口与USB_Slave区别和几种代码下载方式
特别注意:硬件资源USB_SLAVE:用于USB通信,用于模拟USB虚拟串口。USB_232(USB转串口):有供电功能,可用于程序下载和代码调试。总结:两者本质上都一样。只是USB_232是借助了外部芯片实现的,优点就是简单,缺点就是要增加成本.直接接USB,则可以省下这个芯片的费用,缺点,则是需要自己写驱动。-摘自正点原子论坛可能是这个原因,MINI板上只保留了USB转串...原创 2019-12-27 21:23:59 · 11024 阅读 · 6 评论 -
USB转TTL、USB转RS232的实现
电平之间的转换PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则;还有DB9接口(九针口),相应电平逻辑遵照RS-232原则。而我们的单片机上的串行通信通过单片机的RXD、TXD、VCC、GND四个引脚,相应电平逻辑遵照TTL原则。当然,新手小白买的学习板上肯定都已经集成了类似PL2303、CP2102之类的USB转TTL芯片,相应接口也变成了USB接口;有些学习板上集成的是M...转载 2019-12-27 14:32:36 · 4495 阅读 · 0 评论 -
STM32学习之路
序言 考研初试已经结束,结果还不得而知,我打算趁着这段时间,开始学习一下STM32,为毕业设计做准备。本来打算前两天就开始,一直拖到现在,赶紧开个记录贴,记录一下我的学习历程,再者,督促自己学习。准备阶段(注:由于现在是初级学习阶段,日后还会回来修改完善此部分,增加详细信息。) 硬件准备:正点原子精英开发板STM32F103ZET6 STM32F407VET6最小系统板 ST-Li...原创 2019-12-27 10:41:33 · 454 阅读 · 0 评论