
STM32
qq_33974167
涓涓细流,方可成河。
展开
-
STM32CubeMX之串口封装详解
概述 上一篇写了 STM32CubeMX 的串口的使用,而这篇来扒一扒,它是怎么进行封装的。其实在标准库中也类似如下过程。文章目录概述一.串口实例二. 串口实例初始化三. 串口数据的发送(阻塞模式)四. 串口数据接收一.串口实例 我们都知道,其实单片机最后其实都是对 串口相关的寄存器 进行操作,那么我们想扒一扒它的流程,必然要先知道串口相关的寄存器是哪些,因此查阅 STM32F4xx中文参考手册 ,我们可以在 第711页 找到以下相关寄存器:状态寄存器数据寄存器波特率寄存器原创 2020-07-01 01:36:22 · 3269 阅读 · 4 评论 -
STM32CubeMX之串口的使用 (阻塞模式)
环境:开发板:STM32F4探索者(正点原子)一. 进行项目的必要配置时钟配置调试配置如果不大清楚,可以看 STM32CubMX工程创建(点亮LED)二. 串口选择 查看 STM32F4探索者 开发板的原理图,如下图所示,我们可以看到USB转串口是在USART1因此我们在 STM32CubeMX 中如下图进行勾选,并进行配置序号一,代表串口处于异步模式序号二,关闭串口的硬件流控的功能序号三,波特率设置,一般是根据通信的芯片进行选择,这里选择是115200 bps序号原创 2020-06-28 23:38:02 · 3257 阅读 · 3 评论 -
STM32F4之什么是SPI?
一.什么是SPI? 1.SPI是一般为4线的总线协议,有时也可以是三条线(单向传输) 2. 四线分别为MISO(主设备数据输入) ,MOSI(主设备数据输出),SCK(时钟),CS(片选) 有必要了解一下它的英文全称(1) MISO - Master input SlaveOutput(主设备数据输入,从设备数据输出)(2)MOSI - Master Out...原创 2019-09-06 20:27:12 · 1515 阅读 · 1 评论 -
从STM32F4的库函数分析如何实现点亮一个LED(点亮LED)(三)
使用库函数点亮LED,不用我们自己去查看寄存器,方便我们的开发,但是库函数是怎样封装的呢?int main(void){ //声明一个结构体变量 GPIO_InitTypeDef GPIO_InitStructure; //使能GPIO外设时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); //定义一个结构...原创 2019-04-18 20:58:21 · 2799 阅读 · 0 评论 -
stm32F4之用示波器解码I2C协议
当我们调试I2C的时候,有时候我们并不清楚,I2C协议有没有正常工作,借助示波器,我们可以很直观的看到通过I2C协议发出数据。所以掌握示波器对I2C进行解码也是很重要的,这里我使用的是 SIGLENT 公司的示波器,型号为 SDS 1202X,支持I2C,SPI解码等。一.用示波器解码I2C的相关代码主函数代码int main(void){ u8 read;...原创 2019-04-09 20:06:13 · 2245 阅读 · 1 评论 -
STM32F4之模拟I2C通信协议的实现
一,何为IIC?I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。IIC是半双工通信方式。二,IIC通信的6种状态1.空闲状态2....原创 2019-04-02 21:37:56 · 4187 阅读 · 4 评论 -
从STM32F4的库函数分析如何实现点亮一个LED(代码启动)(二)
这部分的启动代码,主要是将堆栈进行初始化,中断向量表以及中断函数进行定义。 这里将启动文件拆分出来进行理解。Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3Stack_Mem SPACE Stack_Size__initial_sp...原创 2019-04-11 13:06:34 · 1194 阅读 · 1 评论 -
从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)
一.STM32F407的组成STM32F407由一个Cortex-M4内核,片上flash,片上sram,以及片上外设(uart,I2C,SPI等)组成。 内核通过I,S,D三条数据总线,与总线矩阵相连,对片上flash,片上sram,以及片上外设等进行操作,内核通过I总线获取指令,内核...原创 2019-04-10 22:45:31 · 1682 阅读 · 1 评论 -
stm32F4之使用I2C读写24C02
一.24C02简单介绍 1.串行E2PROM是基于I2C-BUS 的存储器件, 2.可以支持100万次擦除,数据可以保存100年, 3.支持每次读写1字节 4.写周期最大5ms(即最好保证在5ms后进行读写,否则可以数据将会读取错误)二.24C02的读写时序...原创 2019-04-04 17:27:51 · 2793 阅读 · 0 评论 -
STM32F4之PWM设计
一,何为PWM?PWM的全称为:Pulse Width Modulation,简称脉宽调制百度来的:脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。而简单的来说就是,我们可以使用处理器输出自己想要的占空比的矩形波,去达到控制模拟电路等目的。二,STM32中拥有PWM在STM32F407的芯片手册中有描述:12个16位的定时器,2个32位的定时器,每...原创 2019-03-30 17:00:56 · 6999 阅读 · 0 评论 -
STM32F4之GPIO的使用
上次学STM32F103是在大二的暑假,学了一段时间之后也没有项目做,渐渐地就转向其他的方向,最近实习要用到STM32F407,就打算从头学,但是一些基础还在,并决定将学习的过程记录一下,以备使用。一.STM32F407ZGT6的GPIO资源介绍STM32F407ZGT6 - 一共有7组IO口 - 每组IO口有16个IO - 一共16X7=112个IO...原创 2019-03-21 17:16:33 · 3549 阅读 · 2 评论 -
STM32F4之定时器
STM32F407有14个定时器,其中有12个16位的定时器,2个32位的定时器这几种定时器的区别定时器的溢出时间计算:Tout(溢出时间)=(ARR+1)(PSC+1)/TclkARR:自动重装载寄存器,用于装载计数器PSC:PSC预分频器(分频范围1~65535)Tclk:外设时钟周期,可以在STM32F407的芯片手册中找到时钟框图(备注:ARR是代表计...原创 2019-03-21 17:17:00 · 5192 阅读 · 1 评论 -
STM32F4之USART串口通信
资源:STM32F407有2个UART(通用异步收发器),4个USART(通用异步/同步收发器)在STM32F407ZET6的手册上有描述,这些接口所对应的引脚如下:在这里我们选用串口1进行简单编程:实现功能吐下:1.每秒发送一个数字2.进行数据回传其所要配置的内容如下:1.GPIO的时钟使能2.声明一个GPIO结构体变量,进行定义并进行初始化,主要...原创 2019-03-21 17:17:30 · 12756 阅读 · 2 评论 -
STM32F407之如何选择外设时钟的函数
在STM32F4xx的中文参考手册中的第二章节中就可看到:哪些外设挂载在哪些总线上,就可以在rcc.h的头文件中找到对应的外设时钟使能函数。在STM32F407的芯片手册中有详细的框图...原创 2019-03-21 17:17:17 · 1290 阅读 · 0 评论