stm32
文章平均质量分 73
Naunyang
不以物喜,不以己悲,天地本不全,奈何以全求之,不贪生,不惧死。
展开
-
GPIO端口之AFIO的完全映射与部分映射的理解
GPIO端口之AFIO的完全映射与部分映射的理解原创 2022-09-02 18:37:40 · 1954 阅读 · 1 评论 -
Keil精确测量代码运行时间
在工程设置中“Debug”下,选右边硬件仿真,点下拉框选“J-LINK/J-TRACE”,再点“Setting” 在弹出窗口中“Debug”下,选“JTAG”或“SW”,在后面选好下载速率。 点到Trace”标签下,如果是选择的“SW” 则勾选“Enable”选项,在“Core”框中输入MCU实际工作时钟频率(就是单片机以什么频率来执行指令的,MDK会用它来计算时间),再勾选“Autodetect...转载 2022-04-15 17:16:51 · 3490 阅读 · 0 评论 -
STM32+IAP方案的实现
专注电子技术学习与研究 联系我们 <a title="单片机教程网" href="http://www.51hei.com"><img alt="单片机教程网" src="http://www.51hei.com/hugab/artcss/images/logo51hei.png" align="middle"></a> <div class="v3_...转载 2021-11-30 12:03:50 · 2662 阅读 · 1 评论 -
GD32F103VET6替代STM32F103VET6遇到的问题
一.问题与现象:1.公司的产品之前用的是STM32F103VET6,芯片涨价&高价也买不到的情况下,我们选择了GD32F103VET6进行代替。之前同事直接把ST的程序给烧录进GD中,一下就跑起来了。短时间也没发现什么问题。过了阶段,我们发现,有时设备读取SIM卡的ICCID与无线通讯模组的IMEI读不全。我接收之后,就依照网友的总结GD32E103/F303系列替换STM32F103与STM32到GD32移植攻略对需要修改的地方进行了修改。把软件延时(for与while )进行了适当延长,这些问原创 2021-11-04 20:40:27 · 5614 阅读 · 5 评论 -
STM32与GSM800A调试记录
最近在做一个项目,调试单片机与GSM(我这里用的是GSM800A)通信时遇到问题。实现功能:单片机控制GSM模块发送短信(很基础的功能)。用的的是AT指令,还有就是GSM模块启动工作流程。当我们要开始动手干活时,首先要想着,整个流程时怎么样的?要用到那些知识?一步一步慢慢来,细心的来。就上边的功能来看。可能是这样一套流程:(1)当我们选取了GSM模块之后,知道它与单片机之间是以串口的方式通信的,那么我们需要做好串口代码工作,并调试好,确保无误。(2)详细阅读GSM模块的手册,知道它的一整套工作流程。原创 2021-05-12 15:29:32 · 1415 阅读 · 2 评论 -
keil5编译后生成 Program Size: Code RO-data RW-data ZI-data是什么
在keil5下全编译了这么多次代码,每次编译完了后都有这么一行提示,闲来没事还是搜索学习了一下。 Program Size: Code=49560 RO-data=7032 RW-data=308 ZI-data=1100180 (数据当然是不一样的哈) 通过查阅keil5的帮助文档(ARM Development Tools),看到样的的一个数据,如图 Code (i...转载 2021-05-08 10:37:16 · 1572 阅读 · 1 评论 -
Code、 RO-data=、 RW-data、ZI-data、
1. 查看码Flash/内存RAM占用大小 工程编译后,双击上图中红框位置,会打开 .map文件,包含了各个函数和文件占用的空间大小和地址。 2. Code-Data,RO-Data,RW-Data,ZI-Data 分别是什么含义 Code-Data:代码占用的空间大小(占用的空间为内部Flash) RO-Data:只读常量大小(cons...转载 2021-05-08 10:35:25 · 2696 阅读 · 0 评论 -
关于STM32ADC采样阻抗匹配问题。
在做一款消费电子产品时,需要采集电池电压(3.3V-4.2V),同时在休眠的时候希望尽量减小待机电流。电池电压采集电路采用两个1%的300K电阻进行分压,由该电路引起的待机电路为4.2/(300+300)mA=7uA.此时比较合理(整机的待机电流要求30uA以内)。 初始设计电路如下: 在编程采集数据时发现测试电压与实际电压有偏差,测试值总比实际值偏小一点。在软件上做补偿,把值修正...转载 2021-03-19 10:53:51 · 7086 阅读 · 1 评论 -
2020-09-28
通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。在UART通信协议中信号线上的状态为高电平时代表‘1’,信号线上的状态为低电平时代表‘0’。比如使用UART通信协议进行一个字节数据的传输时就是在信号线上产生八个高低电平的组合。串行通信是指利用一条传输线将数据一位位地顺序传送,也可转载 2020-09-28 10:29:33 · 653 阅读 · 0 评论 -
ST-Link之No Target Connected问题解决
一、背景:最近准备做个平衡车练练手(自己着实有些菜)。起初画板子的参考的别的原理图。好些地方没有特别注意。板子回来自己调试的时候遇到问题了。问题:要驱动两个电机的编码器。编码器驱动只能使用定时器(通用定时器与高级定时器都具有编码器接口功能,而基本定时器6 7不具有此功能)的通道1和通道2。然而我画板子的时候,起重一个电机编码器接口接到了PB0 PB1(MCU STM32F103C8T6)引脚上,这两个引脚对应的是定时器3的通道3跟通道4.那显然不可以了。于是乎割线、跳线了呗。看了看只能跳到PB6与PB7引原创 2020-08-16 09:59:48 · 37229 阅读 · 5 评论 -
OLED驱动芯片SSD1306解读
驱动OLED实际上是控制的OLED的驱动控制芯片。一般常用的芯片SSD1306等。这里以此芯片为例解读一下,也是自己的扫盲片作为自己学习过程中的笔记。有不对的地方欢迎指出。大佬绕过!一般我们购买一块OLED屏。一般的屏厂家帮我们设置好了好几种单片机与屏通信接口。比如:SPI (3线或4线)、IIC、6800接口、8080接口等。默认是其中一种,但是我们相用其他的通信接口,我们只需简单的条线就可以实现。这其实还是控制的SSD1306的驱动芯片来实现的,与屏没有多大的关系。/***************原创 2020-08-11 20:48:16 · 10456 阅读 · 0 评论 -
通讯协议IIC解读片
一、IIC简介IIC协议是飞利浦公司开发的,只需要两根线(SDA SCL)的一个通讯协议。多半用于IC之间的通信,通信距离短。物理层特点:(1)支持设备总线,“总线”是指多个设备共用通信线,就是可以一个主机连接多个从机,从机都挂载在同一条通信线上,每个从机都有自己的地址。(2)总线(SDA SCL)通过上拉电阻接到电源.当总线空闲时,会输出高阻态,当总线挂载多个从机时,总线都空闲时,由上拉电阻把总线拉到高电平。协议层特点:()()()()()...原创 2020-07-20 21:17:02 · 750 阅读 · 0 评论 -
STM32的抢占优先级与子优先级
STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。 抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断(在执行中断服务函数A 的过程中被中断B 打断,执行完中断服务函数B 再继续执行中断服务函数A),抢占属性由NVIC_IRQChannelPreemptionPriority 的参数配置。 而响应属性则应用在抢占属性相同的情况下,当两个中断向量的抢占优先级相同时,如果两个中断同时到达, 则先处理响应优先级高的中断, 响应属性由NVIC_I转载 2020-07-08 15:06:31 · 8374 阅读 · 2 评论 -
协议的起始位,停止位
关于协议,有起始位,数据位,校验位,停止位等等。目前,我找到的资料或者网友的结论中都是:起始位默认为0,停止位默认为1.无论是串口通信,还是MODBUS协议等等。目前调试SMARTGAS传感器中,遇到好多问题。这就是其中之一。慢慢记录。...原创 2020-07-07 22:05:23 · 3992 阅读 · 0 评论 -
STM32 GPIO 配置之ODR, BSRR, BRR 详解
Author:DriverMonkeyMail:bookworepeng@Hotmail.comQQ:196568501Phone:18575593141欢迎交流! 用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态.ODR寄存器可读可写:既能控制管脚为高电...转载 2020-06-21 09:51:13 · 924 阅读 · 0 评论 -
STM32的485配置
1前言在做一个项目,(我的情况:STM32学了好久了,可是还是没做出什么东西来,学软件知识学硬件知识,学来学去都不知到自己该学什么了,可能是自己基础太欠缺了吧。然而生活得继续,继续学吧。)配置485,自己画板子,布局的时候,看485的端口放置的位置距离UART4比较近,(原理图一开始用的USART2),为了布线方便,就改了过来,改成UART4了。2问题配置的时候,出问题了,一直接收到的是00 00 00 00 ……为什么呢?找问题:(2.1)怀疑电路,重新看资料,确认电路。之前没细心的注意MAX原创 2020-06-20 22:58:36 · 2849 阅读 · 1 评论 -
main函数中的while(1)解读
单片机C语言的主程序,通常要用一个while(1)语句来让程序进入一个无限循环,目的是为了让程序一直保持在我们需要运行的情况下。 虽然这种做法毋庸置疑,在网上还是有不少朋友有疑问,如果程序不加while(1)会出现什么情况,对于这种好学精神,还是值得赞扬的,做学问就需要有追根问...转载 2020-04-27 08:26:17 · 12854 阅读 · 2 评论 -
将一个浮点型的数通过串口发送出去
可能大家对发送字符串,整数,数组等待的没有问题,也想的明白,可是对于浮点型的数,或许有些不知所措(大佬绕过,小白我是这样)今天搞懂了,就记录下!其实发送原理还是通过字符串的形式发送出去的。只不过是我们将浮点型的数进行的拆解。ps:除运算与或运算不太懂的可以自己查查就可以了。假如一个浮点型的数 d = 25.6345879999我想将这个浮点型的数保留2位小数发送到串口,那我该怎么做呢?...原创 2020-04-10 15:03:27 · 7669 阅读 · 6 评论 -
STM32之内存
内存的分类:1、动态内存:DRAM。为什么称之为动态内存呢?是与他的硬件构成有关。动态随机存储器DRAM 的内存单元是以电容的电荷来表示数据。有电荷表示1,无电荷表示0,但是随着时间的推移,代表1的电荷会放电,代表0的电荷会吸收电荷,因此它需要定期刷新,所以就有了动态内存之称。刷新操作会对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电; 若电量小于 1/2,则认为其...原创 2020-01-05 09:48:27 · 448 阅读 · 0 评论 -
stm32外部中断
自己初学,总结下配置过程。基础讲解查看参考手册与相关资料。实现按键控制LED灯的翻转。(1)按键的端口配置【1】初始化成输入模式(根据硬件原理图看需要配置成浮空输入还是上拉输入)【2】基本配置,初始化。(2)中断线配置【1】void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)就是那个端口的那...原创 2019-12-04 00:25:05 · 178 阅读 · 0 评论 -
STM32系统时钟的配置钟FLASH预取指的作用
以下是库函数中的将时钟配置成72M的代码。大家有没有看图片中的部分呢?知道这这FLASH的功能是干什么吗?我不怎么理解。野火讲的是:在stm32中,我们的代码都是放在flash中的,内核是M3,内核要读flash中的code,它是一条一条读一条一条执行的。读完第一条,还没读第二条代码时,内核先会把将要读的读的第二条代码先取好,放好等待它去读,这个过程称为预取指。,取指还是需要等待的。等待的周期与我...原创 2019-12-01 20:51:39 · 4492 阅读 · 4 评论 -
Code, RO-data,RW-data,ZI-data区别
一 基础知识字节 8位半字 16位字 32位二 解惑Code, RO-data,RW-data,ZI-dataCode为程序代码部分。表示要执行的代码,程序中所以的函数都位于此处RO-data 表示程序中只读数据,程序中所定义的全局常量数据和字符串都位于此处。RW-data 表示 已初始化的可读可写的数据,程序中定义并且初始化的全局和静态变量位于此处。ZI-data 表...原创 2019-12-01 19:59:32 · 867 阅读 · 0 评论 -
STM32的GPIO输入输出的几种模式的总结
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD开漏输出(6)GPIO_Mode_Out_PP推挽输出(7)GPIO_Mode_...原创 2019-11-29 19:33:20 · 4182 阅读 · 0 评论 -
STM32的内部温度传感器实验总结。
1.STM32有一个内部的温度传感器,可以用来测量CPU及周围的温度(TA)。 2.该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。 3.温度传感器模拟输入推荐采样时间是17.1μs。 4.STM32的内部温度传感器支持的温度范围为:-40~125度。精度比较差,为±1.5℃左右。 内部温度传感器更适合于检测温度的变化,而不...原创 2019-08-17 09:51:01 · 10235 阅读 · 4 评论 -
STM32的ADC配置
STM32的ADC是:12 位 ADC 是一种逐次逼近型模拟数字转换器。它有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值值。【详细介绍可以看数据手册中文版第16章节】利用原子的精英开发板实...原创 2019-08-15 21:15:16 · 14782 阅读 · 1 评论 -
gpio上拉下拉区别
gpio上拉下拉区别 GPIO是一颗芯片(MCU)必须具备的最基本外设功能。GPIO通常有三种状态:高电平、低电平和高阻态。高阻态换句话说就是断开状态或浮空态。因此上拉和下拉其中一个强大的理由就是为了防止输入端悬空,使其有确定的状态。减弱外部电流对芯片的产生的干扰。上拉就是将不确定的信号通过一个电阻提升为高电平,这个上拉的电阻的选择通常有讲究,通常是驱动能力和功耗的平衡,若GPIO为输出为...转载 2019-08-13 20:57:07 · 10653 阅读 · 3 评论 -
STM32待机唤醒
STM32有3中低功耗模式:1)睡眠模式(CM3 内核停止,外设仍然运行)2)停止模式(所有时钟都停止)3)待机模式(1.8V 内核电源关闭)在运行模式下,我们也可以通过降低系统时钟关闭 APB 和 AHB 总线上未被使用的外设的时钟来降低功耗。三种低功耗模式一览表见表 21.1.1 所示在这三种模式中,最低功耗的属于第三种模式,即待机模式,最低只需要2uA的电流。停机模式是次低功耗的...原创 2019-08-13 20:49:09 · 1040 阅读 · 0 评论 -
UART, SPI, IIC的详解
版权声明:本文为博主原创文章,...转载 2019-07-05 11:21:26 · 448 阅读 · 0 评论 -
DS18B20 数字温度传感器实验
DS18B20 数字温度传感器实验STM32 虽然内部自带了温度传感器,但是因为芯片温升较大等问题,与实际温度差别较大,所以,本章我们将向大家介绍如何通过 STM32 来读取外部数字温度传感器的温度,来得到较为准确的环境温度。在本章中,我们将学习使用单总线技...转载 2019-06-20 10:52:00 · 7898 阅读 · 0 评论 -
初学systick 滴答配置----两种方式
systick 滴答配置有两种方式:中断方式与查询方式。*中断方式与查询方式的区别是:中断方式CPU可以同时干几件事,CPU没用专门等着计数,CPU可以干其他事情 ,时间到进行中断。。。为查询方式是CPU干耗着专门干这一件事,干不了其他事情。//以下是core_m3.h中的SysTick_Config函数。/**@brief Initialize and start the SysTi...原创 2019-06-13 00:07:47 · 4068 阅读 · 0 评论