STM32学习
文章平均质量分 76
充电才能更加强大
嵌入式的大菜鸟
心之所向,不慌不忙
展开
-
STM32-嵌入式常见代码英文缩写
SysTick,在32单片机中,这是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。类似于Disable。clock gating 时钟门控;RCC,Reset and Clock Control,意思是复位和时钟控制器,它负责单片机的复位以及时钟的配置。Stress level,应力水平,应力水平是指实际所受应力与破坏强度的比值,是材料力学中的一种术语,了解即可。原创 2024-05-24 15:06:07 · 197 阅读 · 0 评论 -
学习笔记:EEPROM 与 FLASH 存储器
1、EEPROM的发展(1)ROM(Read Only Memory):真正意义上的只读存储器,在出厂的时候数据就写在了芯片里,只能读不能写;(2)PROM(Program Rom):可编程只读存储器,可编程的ROM芯片,出厂的时候芯片是空白的,自己可以写入一次数据,一旦写进去芯片也是只能读不能写;原创 2023-10-12 13:31:04 · 3396 阅读 · 1 评论 -
学习笔记:STM32定时器(TIM)中断
Cortex-M4集成了嵌套式矢量型中断控制器(Nested Vectored Interrupt Controller (NVIC))来实现高效的异常和中断处理。NVIC实现了低延迟的异常和中断处理,以及电源管理控制。它和内核是紧密耦合的。凡是打断程序顺序执行的事件都称为异常(exception),比如HardFault,外部中断等。所以中断也可以说是异常的一种。原创 2024-04-12 14:59:05 · 1040 阅读 · 0 评论 -
学习笔记:关于上拉输入、下拉输入、模拟输入、浮空输入、推挽输出、开漏输出、复用输出的区别
2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。拉高,然后可以读IO的值;3、开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。原创 2023-08-17 14:22:00 · 9405 阅读 · 0 评论 -
学习心得:如何开始学习一款MCU
任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。对于指令系统,虽然形式上看似千差万别,但实际上只是符号的不同,其所代表的含义、所要完成的功能和寻址方式基本上是类似的。因此,对于任何一款MCU,主要应从如下的几个方面来理解和掌握:1、MCU的特点:要了解一款MCU,首先需要知道就是其ROM空间、RAM空间、IO口数量、定时器数量和定时方式、所提供的外围功能模块(Peripheral Circuit)、中断源、工作电压及功耗等等。原创 2024-05-10 11:29:26 · 717 阅读 · 1 评论 -
学习笔记:读写内部 FLASH
页擦除的处理方式也有两个思路,一个是根据要写入的大小,计算要擦除页数,对应擦除;)和批量擦除(Mass Erase), 这里不能使用批量擦除,会导致下载测试程序也被擦除,无法执行代码,因此只能使用页擦除。通常系统时钟为72MHz,则需要设置2个等待周期(LATENCY),否则读写Flash可能出,导致死机等情况。Flash的起始地址,从该地址之后,存放本程序,我 们只能操作本程序占用空间之后的。如果是页擦除,读取被擦除的页并检查;前面提到,不同的系统时钟,需要设置对应的等待周期,以确保能正确读取内部。原创 2024-04-07 16:47:26 · 926 阅读 · 0 评论 -
嵌入式C语言常见问题
当表达式 中存在 有符号类型 和 无符号类型 时,所有的 操作数 都自动转换为 无符号类型,因此 -20 变成了一个非常大的正整数,该表达式计算出的结果 大于6,答案是输出 > 6。11、中断的概念 当某个事件发生时,CPU 停止运行正在执行的程序,而转去执行处理该事件的程序,处理该事件后,返回原程序继续执行下去的过程;(7)指向函数的指针,该函数有一个整型参数,并返回一个整型数:int ( * a)(int);(5)有10个指针的数组,它的指针指向整型数:int * a[10];原创 2024-04-12 15:23:13 · 348 阅读 · 0 评论 -
从零开始开发一款嵌入式产品的一些经验
需求定义用来描述产品的基本功能,对于公司来说,需求一般由该公司的市场销售部门或该公司的主要客户来制定;而对小公司或爱好者(就像armjishu.com里的爱好者一样),技术人员可以自己负责定义需求,并撰写成文档。通常需求定义是围绕以下几个因素而来:1)系统的用途(定义需要系统实现的各种功能)2)实际输入输出是何种方式实现的(为元器件的选型做参考)3)系统是否需要操作界面(涉及软件层操作系统的选型)原创 2024-04-22 14:56:58 · 461 阅读 · 0 评论 -
STM32 PWM输出原理和直流电机PWM驱动原理详解及例程
而不同的定时器可能在不同的总线上面,APB1总线的频率是36MHz,APB2的频率是72MHz,假设我设置一个在APB1总线上的定时器,预分频数设置成为36,那么我的这个定时器就被设置成了36 * 10 ^ 6 / 36 Hz的这么一个 计数器 ,1s之内可以数1000000个数。你也可以根据能量守恒来想啊,电机转起来过后,线圈电阻恒定不变,功率恒定不变,两端电压峰值也恒定不变,那么这样情况下,电源电压图形上占空比的不同将导电机在这段时间内致消耗能量的不同,以此达到转化的机械能的不同,转速是不是也不同了。原创 2024-01-09 13:53:11 · 1424 阅读 · 0 评论 -
简单状态机的学习
状态机,或称有限状态机FSM(Finite State Machine),表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,FSM是一种逻辑单元内部的一种高效编程方法,在服务器的编程中,服务器可以根据不同状态或者消息类型进行相应的处理逻辑,使得程序逻辑更加清晰易懂,是一种重要的编程思想。状态机有3要素:状态、事件与响应状态:系统处在什么状态?事件:发生了什么事?响应:此状态下发生了这样的事,系统要如何处理?原创 2024-04-02 11:34:03 · 1026 阅读 · 0 评论 -
STM32f103 ADC 电压转换 采集电压
其实电子电路的取样电路存在电流取样和电压取样,如果想要直接采集电流,需要在采集端串联电阻,然后采集电阻两端电压,而且电流传感器采样范围也就几十毫安,一般需要放大器。首先明确一个概念,嵌入式或者说单片机里进行ADC(数模)转化,所采集的数据一般是电流或电压,但绝大多数我们采集的只是电压值。(1)ADC是12bit,采集范围0~3.3V,也就是2^12(4096)对应3.3。(2)(2^12)/3.3=X/Y X为12bit转换后数值,Y为实际电压。原创 2023-09-26 11:08:50 · 744 阅读 · 0 评论 -
学习笔记:APB1和APB2使用场合
APB1外设时钟使能寄存器 的可用位为20位,这些都是R/W,对应的“外设”时钟有:(1)DAC接口时钟使能 ,(2)接口时钟使能,(3)备份接口时钟使能,(4、5)Can 2和Can1 接口时钟使能,(6、7)IIC2和IIC1接口时钟使能,(8、9、10、11)USART 5、USART4、USART3、USART2接口时钟使能,(12、13)SPI3和SPI2接口时钟使能,(14) 窗口看门狗时钟使能,(15-20) -7时钟使能,可以看得出,一个位对应一个“外设”,0关闭,1打开。原创 2023-08-17 14:23:58 · 1425 阅读 · 0 评论 -
stm32f103定时器配置与时间计算公式
这里的频率的意思就是1s中记 Tclk/(psc+1)M个数 (1M=10的6次方) ,每记一个数的时间为(psc+1)/Tclk ,很好理解频率的倒数是周期,这里每一个数的周期就是(psc+1)/Tclk 秒。我们将分配的时钟进行分频,指定分频值为psc,就将我们的Tclk分了psc+1,我们定时器的最终频率就是Tclk/(psc+1) MHz。* 然后指定重装载值arr,这个重装载值的意思就是当 我们的定时器的计数值 达到这个arr时,定时器就会重新装载其他值.Tout:定时器溢出时间(单位为us)原创 2023-11-27 17:29:17 · 916 阅读 · 0 评论