stm32
文章平均质量分 63
@seven@
加油,未来可期
展开
-
ESP8266三种工作模式以及TCP/UDP服务
三种工作模式(STA、AP、STA+AP),以及与TCP服务器,TCP客户端,UDP服务器,UDP客户端的关系,下面将梳理清除这些点。原创 2022-11-26 09:08:05 · 3469 阅读 · 0 评论 -
stm32项目之看门狗实验
STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。原创 2022-09-24 18:56:36 · 846 阅读 · 0 评论 -
stm32之printf函数
在stm32里面,我们没有屏幕终端,那这个函数是输出到哪里?有同学说到串口,其实这是可以的,不管输出到哪里,主要看我们怎么实现int fputc(int ch, FILE *f);这个函数,printf最后还是这个函数,在这个函数里面我们可以设置我们的输出的地方,比如uart通信的输出寄存器,显示屏的显示寄存器,或者是蓝牙,wifi的都可以。下面给的是uart协议的输出。printf,这个函数,学过c语言的同学都知道,这个函数会帮我们将数据输出到终端上面。原创 2022-09-24 17:20:32 · 1747 阅读 · 0 评论 -
stm32项目之I2C实验
I2C 通讯协议(Inter - Integrated Circuit) 是由Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC) 间的通讯。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。原创 2022-09-23 16:18:47 · 931 阅读 · 0 评论 -
stm32项目之DMA实验
DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用CPU,即在传输数据的时候,CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是SRAM 或者是FLASH。DMA 控制器包含了DMA1 和DMA2,其中DMA1 有7 个通道,DMA2 有5 个通道,这里的通道可以理解为传输数据的一种管道。要注意的是DMA2 只存在于大容量的单片机中。原创 2022-09-23 15:16:58 · 1235 阅读 · 0 评论 -
stm32项目之SysTick滴答器实验
重点是前面三个寄存器。注意:1.数据不可以超过24位。2.COUNTFLAG这个位如果计数到0就会置1,被读取之后就会置0,可以可以防止多读,利用这个点我们可以很好去实现延时函数。原创 2022-09-23 13:45:04 · 562 阅读 · 0 评论 -
stm32项目之uart通信
不懂协议的同学,可以看看下面这个博客,可以帮助你简单了解一下通信协议的一些要点。原创 2022-09-23 13:42:14 · 1163 阅读 · 0 评论 -
stm32之通信原理
按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用8、16、32 及64 根或更多的数据线进行传输的通讯方式,它们的通讯传输对比说明见图并行通讯与串行通讯的对比图,并行通讯就像多个车道的公路,可以同时传输多个数据位的数据,而串行通讯,而串行通讯就像单个车道的公路,同一时刻只能传输一个数据位的数据。原创 2022-09-23 10:43:42 · 762 阅读 · 0 评论 -
stm32项目之蜂鸣器实验
自定义宏,其实先自定义函数,在自定义函数里面使用的是标准库给我们提供的函数接口,只不过我们进行了一层封装。(如果简单的,就可以不使用自定义函数了,在宏里面自己调用标准库的函数,使用自定义函数主要是提高宏代码的可读性));// PB8这样子封装好之后,我们直接使用这个宏就可以了,方便使用了很多。原创 2022-09-22 09:55:00 · 538 阅读 · 0 评论 -
stm32项目之按键实验
自定义宏,其实先自定义函数,在自定义函数里面使用的是标准库给我们提供的函数接口,只不过我们进行了一层封装。(如果简单的,就可以不使用自定义函数了,在宏里面自己调用标准库的函数,使用自定义函数主要是提高宏代码的可读性)#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)//读取按键0#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//读取按键1。原创 2022-09-22 09:37:09 · 1032 阅读 · 0 评论 -
stm32项目之点灯实验
自定义宏,其实先自定义函数,在自定义函数里面使用的是标准库给我们提供的函数接口,只不过我们进行了一层封装。(如果简单的,就可以不使用自定义函数了,在宏里面自己调用标准库的函数,使用自定义函数主要是提高宏代码的可读性));// PB5);// PE5这样子封装好之后,我们直接使用这个宏就可以了,方便使用了很多。原创 2022-09-22 09:14:33 · 571 阅读 · 0 评论 -
stm32 库函数开发初始化模板
这里只是记录一些常用外设的使用模板,方便后续使用。会不断更新。本质就是先开启时钟,然后配置相应结构体,然后通过函数去初始化,标准库会根据配置的结构体去配置寄存器的值。原创 2022-09-21 23:32:06 · 285 阅读 · 0 评论 -
keil5编译没有头文件出来
4)在.c文件里面包含一下头文件。比如#include "led.h"这种。其实keil5显示头文件,主要看源文件里面包含了哪些头文件。在源文件下面才会显示的,我们一开始创建文件的时候没有,就慌了,问题不大,明白本质就好。1) 如果工程中有中文路径,keil是无法识别中文路径的,需要修改为英文路径。---这种可能性不大。3)点击魔术棒中的C/C++,将包含该头文件的最内层文件夹包含进去,一定要包含最内层文件夹---2) 如果修改了工程中的文件夹名,则需要重新将文件夹包含到工程中。原创 2022-09-21 21:57:25 · 8746 阅读 · 2 评论 -
stm32之中断
NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对 Cortex-M3 内核里面的 NVIC 进行裁剪,把不需要的部分去掉,所以说 STM32的 NVIC 是 Cortex-M 3 的 NVIC 的一个子集。// 中断使能寄存器// 中断清除寄存器// 中断使能悬起寄存器// 中断清除悬起寄存器// 中断有效位寄存器// 中断优先级寄存器 (8Bit wide)// 软件触发中断寄存器。原创 2022-09-19 23:21:30 · 1961 阅读 · 0 评论 -
stm32开发模板 && 建议
stm32开发有很多种,比如使用寄存器开发,使用固件库(也称标准库)开发,还要的使用HAL库开发。这三种开发其实都是对寄存器进行操作,这个是本质,我们抓住本质去看问题,就会轻松很多。寄存器开发,和51开发差不多,自己对寄存器地址操作,但是寄存器也封装了一下,让开发者使用相对轻松一点。标准库是在寄存器基础进行封装,让开发者使用,管理起来更加方便,但是同样带来一个问题,对于新手不是很友好。HAL库是在标准库基础上再次封装,封装得更加抽象了,对新手也不是很友好。原创 2022-09-19 15:17:09 · 405 阅读 · 0 评论 -
GPIO输入输出模式分析(详解)
本文主要介绍了GPIO的定义和GPIO不同模式间的区别与实现方式,观看完本文相信你对于GPIO会有一个更深的理解,我们如果是做软件的可以不用太关注于GPIO是如何实现的,但是我们需要知道每个模式下GPIO的特点和应用场合,只有这样我们在实际应用中才能更好的配置出最合适的那个。参考链接: 本文主要是在参考链接基础进行一些总结的。一文看懂GPIO!-面包板社区 (eet-china.com)原创 2022-09-19 11:15:04 · 7744 阅读 · 0 评论 -
什么是stm32
接下来就是细分选型,先确定引脚,引脚多的功能就多,价格也贵,具体得根据实际项目中需要使用到什么功能,够用就好。确定好了引脚数目之后再选择FLASH 大小,相同引脚数的MCU 会有不同的FLASH 大小可供选择,这个也是根据实际需要选择,程序大的就选择大点的FLASH。微处理器简单来说是比微控制器多一个MMU,速度提高很多,性能也是,时钟频率也提高很多。首先是ST,这是ST公司,soc公司里面的一个(著名soc公司: ST 苹果 三星),这些厂商都是使用arm的芯片。32:32是32bit的意思。原创 2022-09-19 10:39:25 · 687 阅读 · 0 评论