STM32教程
文章平均质量分 55
STM32详细教程
linux boy
莫愁前路无知己,天下谁人不识君!
展开
-
STM32----RS-485
一、RS-485通讯协议的介绍与CAN类似, RS-485是一种工业控制环境中常用的通讯协议,它具有抗干扰能力强、传输距离远的特点。 RS-485通讯协议由RS-232协议改进而来,协议层不变,只是改进了物理层,因而保留了串口通讯协议应用简单的特点。二、RS-485物理层RS-485与RS-232的差异只体现在物理层上,它们的协议层是相同的,也是使用串口数据包的形式传输数据。而由于RS-485具有强大的组网功能,人们在基础协议之上还制定了MODBUS协议,被广泛应用在工业控制网络中。RS-485协原创 2020-08-22 21:54:31 · 736 阅读 · 0 评论 -
各种通信协议快速记忆
UART是用于调试,UART协议没有时钟线(USART有)需要两根线,电脑TXD,RXD分别对应单片机的RXD,TXD;UART传输过程:UART分为两种方式,电脑到单片机,单片机到电脑。我们现在以单片机到电脑为例,CPU内核通过GPIO向USART(通用同步异步收发器)按照通信协议发送一串数据,然后电脑就能够通过电脑通过USB转串口线收到。I2C被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C有两条线控制SDA(数据线)、SCL(时钟线);优点是引脚少,硬件实现简单,没有外部收发设备,原创 2020-09-02 18:11:16 · 500 阅读 · 0 评论 -
stm32----spi
一、SPI协议的介绍SPI协议是由摩托罗拉公司提出的通讯协议(Serial PeripheralInterface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、 LCD等设备与MCU间,要求通讯速率较高的场合。二、SPI物理层的特点1、NSS:当有多个SPI从设备与SPI主机相连时,设备的其他信号线SCK、MOSI及MISO同时并联到相同的SPI总线上,本信号线独占主机的一个引脚,I2C协议中通过设备地址来寻址、选中总线上的某个地址并与其进行通信;而SPI协议中没有设备原创 2020-08-21 18:55:24 · 529 阅读 · 0 评论 -
stm32----SDIO
一、SDIO介绍SD卡(Secure Digital Memory Card)在我们生活中已经非常普遍了,控制器对SD卡进行读写通信操作一般有两种通信接口可选,一种是SPI接口,另外一种就是SDIO接口。 SDIO全称是安全数字输入/输出接口,多媒体卡(MMC)、SD卡、 SD I/O卡都有SDIO接口。 STM32F103系列控制器有一个SDIO主机接口,它可以与MMC卡、 SD卡、 SD I/O卡以及CE-ATA设备进行数据传输。二、SDIO总线SDIO总线和USB总线类似,SDIO总线也有两端,原创 2020-08-22 20:13:17 · 907 阅读 · 0 评论 -
stm32----usart
一、usart的用处USART在STM32中的应用最多莫过于“打印”程序信息,一般在硬件设计时都会预留一个USART通信接口连接电脑,用于在调试程序时把一些调试信息“打印”在电脑端的串口调试助手工具上,从而了解程序运行是否正确、如果出错了具体哪里出错等。二、总体流程:电脑->单片机:电脑通过USB转串口线(内核CH340芯片(发))——>USART(通用同步异步收发器(收))——>GPIO——>内核单片机->电脑:内核——>GPIO——>USART(通用原创 2020-08-21 17:17:59 · 2307 阅读 · 0 评论 -
stm32----CAN
一、CAN协议的介绍CAN是控制器局域网络(Controller Area Network)的简称,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,近年来,它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强及振动大的工业环境。二、CAN的特点CAN比较高级,它只存在一些较高级的单片机中(叫做CAN总线),一些低端单片机需要接CAN控制器及电平转换器才能使用CAN通信。有自带CAN总线的单片机控制CAN通信实际上也是操作单片机原创 2020-08-22 18:15:17 · 783 阅读 · 0 评论 -
stm32----iic
一、I2C的用处I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、 CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯二、总体流程I2C数据传输基本过程:1、主机首先发送开始信号2、主机紧接着发送从机地址信息(一个字节),该字节信息中的最低位为读写控制码:1为读、0为写。高7位为从机设备的器件地址3、从机然后发出确认信号4、主机开始发送信号数据,每当原创 2020-08-21 18:22:09 · 417 阅读 · 0 评论 -
STM32F103系列(五):寄存器版新建工程
在这次实验中我点击debug选项中的CMSIS-DAP Debugger选项中的settings时什么都没有解决办法如下:1、新建本地工程文件夹为了使工程目录更加清晰,我们在本地电脑上新建1个文件夹用于存放整个工程,如命名为“LED”,然后在该目录下新建两个文件夹,具体见图1-1。2 新建工程打开KEIL5,新建一个工程,见图1-2。工程名根据喜好命名,这里取LED-REG,直接保存在L...原创 2020-09-01 17:04:27 · 1018 阅读 · 1 评论 -
STM32F103系列(十四):RCC之使用HSE/HSI配置时钟
1、RCC主要作用–时钟部分设置系统时钟SYSCLK、设置AHB分频因子(决定HCLK等于多少)、设置APB2分频因子(决定PCLK2等于多少)、设置APB1分频因子(决定PCLK1等于多少)、设置各个外设的分频因子;控制AHB、APB2和APB1这3条总线时钟的开启、控制每个外设的时钟的开启。对于SYSCLK、HCLK、PCLK2、PCLK1这4个时钟的配置一般是:PCLK2=HCLK=SY...原创 2020-09-02 11:31:57 · 5674 阅读 · 0 评论 -
STM32F103系列(四):寄存器
STM32编程通常有两种方法:一种是寄存器编程;另外一种是固件库编程,其中寄存器编程是基础,而固件库编程是在寄存器编程的基础上升级而来的一种易于学习和开发的编程方法,是学习STM32编程时重点要掌握的编程方法。1、STM32芯片外观芯片正面是丝印,ARM应该是表示该芯片使用的是ARM的内核,STM32F103VET6是芯片型号,后面的字与生产批次有关,左下角的是ST的LOGO。芯片四周是引脚...原创 2020-09-02 11:30:21 · 5449 阅读 · 0 评论 -
STM32F103系列(十三):启动文件
1、启动文件简介启动文件由汇编语言编写,是系统上电复位后第一个执行的程序,主要做了以下工作:1)初始化堆栈指针:SP=_initial_sp。2)初始化程序指针:PC=Reset_Handler。3)初始化中断向量表。4)配置系统时钟。5)调用C库函数_main初始化用户堆栈,最终调用main函数进入C语言世界。2 、查找ARM汇编指令在讲解启动代码的时候,会涉及ARM的汇编指令和...原创 2020-09-02 11:28:52 · 2169 阅读 · 0 评论 -
STM32F103系列(六):使用寄存器点亮LED
1、GPIO简介GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚。将STM32芯片的GPIO引脚与外部设备连接起来,即可实现与外部通信、控制以及数据采集的功能。STM32芯片的GPIO被分成了很多组,每组有16个引脚,如型号为STM32F103VET6的芯片有GPIOA至GPIOE共5组GPIO。芯片一共100个引脚,其中GPIO就占了一大部分,所有的GPIO引脚都有基...原创 2020-09-02 11:55:09 · 3664 阅读 · 1 评论 -
STM32学习方法
总体要求是先实现再深究以项目驱动学习单片机,指的是基础的CPU(运算单元等)与一大堆外设封装到一个芯片里。我们写程序到CPU里运行,控制的可不是简简单单的电平,而是外设,哪怕GPIO都是一种外设。外设是经过封装的一系列电路,只漏了一些软件接口出来(对内没硬件接口,都同一张芯片了)。因此想要控制单片机硬件,唯一要做的就是通过这些接口正确地配置它们,在底层就表现为寄存器的配置,你往某些寄存器读写一下,外设就会收到对应的信号触发,完成对应的功能。日常碰到的外设基本就这些:电源和复位——运行基础,需要了解;原创 2022-02-12 19:17:56 · 397 阅读 · 0 评论 -
ADC总结篇
TOP1:定义将模拟量转换为数字量的过程称为模式(A/D)转换,完成这一转换的工具就是模数转换器(简称ADC),用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。例如:把芯片的引脚上的电压读出来,把芯片集成的上的温度传感器的温度读出来!TOP2:编程要点1-独立模式-单通道-中断读取①、初始化ADC用到的GPIO;②、设置ADC的工作参数并初始化;③、配置ADC时钟;④、设置ADC转换通道顺序及采样时间;⑤、配置使能ADC转换完成中断,在中断内读取转换完的数据;⑥、使能ADC;原创 2021-07-14 21:28:01 · 7714 阅读 · 1 评论 -
STM32知识点
①GPIO②USART③Timer④Interrupt⑤SPI⑥I2C⑦ADC-DAC⑨LCD⑩CAN原创 2022-02-12 19:25:32 · 429 阅读 · 0 评论 -
STM32103系列(十二):GPIO位带操作
1、位带简介位操作就是可以单独地对一个比特位进行读和写,在51单片机中通过sbit来实现位定义,STM32没有这样的关键字,而是通过访问位带别名区来实现。在STM32中,有两个地方实现了位带,一个是SRAM区的最低1MB空间,另一个是外社区最低1MB空间。这两个1MB的空间除了可以像正常的RAM一样操作外,它们还有自己的位带别名区,位带别名区把这1MB的空间的每一个位膨胀成一个32位的字访问...原创 2020-09-02 11:55:54 · 9203 阅读 · 2 评论 -
STM32之电源管理
一、前言STM32有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。二、电源监控器STM32芯片主要通过引脚VDD从外部获取电源,在它的内部具有电源监控器用于检测VDD的电压,以实现复位功能及掉电紧急处理功能,保证系统可靠地运行。三、STM32的功耗模式按功耗由高到低排列, STM32具有运行、睡眠、停止和待机四种工作模式。四、睡眠模式在睡眠模式中,仅关闭了内核时钟,内核停止运行,但其片上外设,CM3核心的外设全都还照常运行。有两种方式进入睡眠原创 2020-08-25 22:24:39 · 1709 阅读 · 0 评论 -
STM32F103系列(九):库函数版新建工程
1、新建本地攻城文件夹为了使工程目录更加清晰,我们在本地电脑上新建一个“工程模板”在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下。2、新建工程2.1、选择CPU型号2.2、在线添加库文件2.3、添加组文件夹2.4、添加文件2.5、配置魔法棒选项卡在Target中,选中“Use Micro LIb”,为了在日后编写串口驱动时可以使用printf函数。在Output中把...原创 2020-09-01 17:03:44 · 230 阅读 · 0 评论 -
STM32F103系列(十一):按键检测
1、硬件设计按键机械触点断开、闭合时,由于触电的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生11的抖动,需要用软件消抖处理滤波,不方便输入检测。本实验板中连接有按键附带硬件消抖功能,如图1-2,它利用电容充放电的延时消除了波纹,从而简化软件的处理,软件只需要直接检测引脚的电平即可。从按键的原理图可知,这些按键在没有被按下的时候,GPIO引脚的输入状态为低电平(按键所在的电路...原创 2020-09-01 17:02:54 · 4357 阅读 · 0 评论 -
STM32F103系列(八):初识STM2标准库
1、CMSIS标准及库层次关系基于Context系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,而这些差异却导致软件在同内核、不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的Context微控制器软件的兼容性问题,ARM与芯片厂商建立了CMSIS标准(Context Micro Controller Software Interface Standard)。所谓CMSIS...原创 2020-09-01 17:04:53 · 1737 阅读 · 0 评论 -
STM32F103系列(十):使用固件库点亮LED
1、硬件设计STM32与LED的连接见图1-1所示,这是一个RGB灯,由红蓝绿3个小灯构成,使用PWM控制时可以混合成256种不同的颜色。这些LED的阴极都连接到STM32的GPIO引脚,只要我们控制GPIO引脚的电平输出状态,即可控制LED的亮灭。2、软件设计为了使工程更加有条理,我们把LED控制相关的代码独立分开存储,方便以后移植。在“工程模板”之上新建bsp_led.c及bsp_le...原创 2020-09-01 16:53:24 · 2349 阅读 · 1 评论 -
STM32F103系列(七):构件库函数雏形
在用寄存器点亮LED灯时,会发现STM的寄存器都是32位的,每次配置时都要对照《STM32F10X-中文参考手册》中寄存器的说明,然后对每个控制的寄存器位写入特定参数,因此配置时容易出错,而且代码不好理解,难以维护。学习STM32最好的办法是使用固件库编程,在此基础上了解底层,学习寄存器。1、什么是STM32固件库以上所说的固件库是指“STM32标准函数库”,它是ST公司针对STM32提供的...原创 2020-09-02 11:54:33 · 663 阅读 · 0 评论 -
STM32F103系列(一):如何用DAP仿真器下载程序
1、仿真器简介本次我用的是Fire-Debugger,它遵循ARM公司的CMSIS-DAP标准,支持所有基于Cortex-M内核的单片机,支持下载和在线仿真程序,不需要安装驱动即可使用,支持KEIL和IAR直接下载。2、硬件连接把仿真器用USB线连接至电脑,如果仿真器的灯亮则表示正常,可以使用,如果仿真器的另外一端连接到开发板,给开发板上电,就可以通过软件KEIL或者IAR给开发版下载程序。...原创 2020-09-02 11:56:42 · 8683 阅读 · 0 评论 -
STM32F103系列(三):初识STM32F103
1、什么是STM32STM32,从字面上理解,ST是指意法半导体公司,M是Micro-electronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。STM32的内核是ARM公司生产的ARMv7架构的32Cortex-M3微控制内核。2、STM32能做什么STM32属于一个微控制器,自带了各种常用通信接口,比如USART、I2C、SPI等,可连接非常多...原创 2020-09-02 11:31:07 · 16277 阅读 · 0 评论 -
STM32F103系列(二):如何使用串口下载程序
1、秉火STM32F103VET6(指南者)自带串口下载电路,配合上位机可实现一键ISP下载,不需要修改开发板上的BOOT设置。与仿真器Fire-Debugger相比,ISP(In-System Programming,在系统可编程)只能下载程序,不能在线调试且下载速度慢。2、 安装USB转串口驱动秉火的STM32开发板用的USB转串口的驱动芯片是CH340,要使用串口,需要先在电脑中安装U...原创 2020-09-02 11:31:26 · 17020 阅读 · 1 评论 -
STM32F103系列(十五):STM32中断应用概览
F103在内核水平上搭载了一个异常响应系统,支持为数众多的系统异常和外部中断。除了个别异常的优先级被定死外,其他异常的优先级都是可编程的。有关具体的系统异常和外部中断可在标准库文件stm32f10x.h这个头文件中查询到,在IRQn_Type这个结构体里面包含了F103系列全部的异常声明。 F103系统异常清单F103外部中断清单1、NVIC简介NVIC是嵌套向量中断控制器,控制着整个芯片...原创 2020-09-02 12:20:21 · 547 阅读 · 1 评论 -
嵌入式通信协议
一、总述单片机接口,一定要熟悉:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡。二、UART通用异步收发器UART口指的是一种物理接口形式(硬件)。①、 UART是异步,全双工串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收。②、 UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。③、 对于发送设备和接收设备来说,两者的串行通信配置应该设置为完全相同。①、 起始位:原创 2021-09-02 17:41:05 · 1536 阅读 · 0 评论 -
USART教程
一、UART通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART) 是一种串行异步收发协议,应用十分广泛。UART工作原理是将数据的二进制位一位一位的进行传输。在UART通讯协议中信号线上的状态位高电平代表’1’低电平代表’0’。当然两个设备使用UART串口通讯时,必须先约定好传输速率和一些数据位。二、硬件连接硬件连接比较简单,仅需要3条线,注意连接时两个设备UART电平,如电平范围不一致请做电平转换后再连接,如下图所示:①、原创 2021-09-02 13:30:52 · 3328 阅读 · 0 评论 -
如何学习STM32?
我们在学习STM32之前,要知道STM32能做什么?一、如果想做一个键盘/鼠标可以学习USB协议。二、如果想做做一个联网设备需要学习以太网,TCP/IP协议的底层实现。三、做一个无线设备可能需要学习蓝牙、WIFI或者zigbee的协议,而最终的应用,可能不一定有库或者包,需要自己去写底层。如果用模块,则可能需要学习SPI、I2C或者SDIO去连接模块。四、做一个温控设备,或者平衡小车需要学习PID算法。做一个摄像头,可能需要学习SCCB协议,如果想深入一些,可能需要学习一些图像处理的知识。如原创 2021-09-01 22:32:48 · 733 阅读 · 0 评论