STM32
文章平均质量分 67
STM32F1XX,STM32F4XX外设等配置
车间溜盖子
炮灰攻城狮
展开
-
2.19 keil里面工具EventCorder使用方法
使用时,调用初始化函数InitEventRecorder()即可。原创 2023-11-24 16:02:19 · 1192 阅读 · 0 评论 -
2.0 Jlink使用技巧之读取STM32内部的程序
在实际运用过程中,有时候某台机器有故障,另一台可以正常运行。为了临时救急,我们可以把没问题的机器代码从flash拷贝出来,烧录到故障机。那么如何拷贝flash内部代码呢?步骤1 安装jlink安装好J-link。没安装的,网上自行搜索该软件。步骤2 打开jflash步骤3 :新建工程根据自己单片机型号配置好参数1、File-> Newproject,在弹出来的对话框填写自己芯片型号。2、Target->connect ,连接步骤4:拷贝数据到了关键步骤了Target->原创 2021-07-13 10:57:10 · 8606 阅读 · 3 评论 -
2.1 keil软件的一些常用设置
ctrl= 回到下一级ctrl- 回到上一级ctrlD找定义![在这里插入图片描述](https://img-blog.csdnimg.cn/20210302091340341.png?添加注释: ctrl+/等等。。原创 2021-03-02 09:44:37 · 1619 阅读 · 0 评论 -
2.2 STM32 RAM溢出分析(KEIL在Build的时候提示Error:L6406E:No space in execution)
先请问大家一个问题:keil5编译后生成 Program Size: Code RO-data RW-data ZI-data是什么?要想知道RAM溢出分析,对内存需要比较了解。实际上:RAM_SIZE=RW-data+ ZI-dataZI-data: 已定义未初始化或者初始化为0的变量大小RW-data:已经初始化的变量大小这个RAM_SIZE就是STM32中的RAM内存空间。个...原创 2020-02-25 17:16:28 · 4915 阅读 · 0 评论 -
2.3 STM32 keil生成bin hex文件
上面红线框图内容如下:C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o …\User\output\icapture.bin .\ALIENTEK\icapture.axf1、C:\Keil_v5\ARM\ARMCC\bin\fromelf.exeformelf.exe的目录2、…\User\output\icapture.bin生成bin文件的所在目录3、 .\ALIENTEK\icapture.axf是第一截图生成Name of Execu..原创 2020-10-20 09:21:47 · 1609 阅读 · 0 评论 -
2.4 STM32_FSM状态机的编写
如上图,如何用状态机去实现。方法1:可以用switch case语句实现enum state { s_stop, s_play, s_forward, s_backward, s_pause, s_record };enum message { play, stop, forward, backward, record, pause };void state_change(enum message m){ static enum state s=s_stop; switch (s) .原创 2020-07-09 15:45:00 · 1610 阅读 · 0 评论 -
2.5 自定义通讯数据包协议
文章目录前言一、通讯协议二、各个命令1--升级命令 U2-- 读取设备缓冲状态3—发送数据4—确认总结前言 不知道你们定义通讯数据包格式是什么样的?我刚开始“包头+数据+包尾“,这样就算好了。虽然能用,但是过于粗糙,因为不够严谨所以可能回丢包,也导致比较难添加新命令。提示:以下是本篇文章正文内容,下面案例可供参考一、通讯协议一.数据以命令包的形式发送二.通讯方式:半双工三.设备: 包头 {| 两个字节 ASCII 0X7B,0X7C + 包长度2 BYTE(每字节值0-99)共计原创 2021-03-02 13:26:53 · 646 阅读 · 0 评论 -
2.6 STM32_多定时器复用一个硬件定时器
当定时器不够用或者不想浪费资源时。我们可以利用定时器复用功能。使用一个硬件定时器就可以实现多个时间的定时。类似于软件定时器。优点:可以多个定时器复用要给硬件,节约资源缺点:它是在某个任务或者mian中一直循环查询。优先级没有定时器中断优先级高/* * Copyright (c) 2016 Zibin Zheng <znbin@qq.com> * All rights reserved */#include "multi_timer.h"#include "tim.h"//ti原创 2020-07-06 16:59:09 · 1206 阅读 · 0 评论 -
2.7 RAM、ROM、Flash分类
文章目录分类RAMROMFLASH分类RAMRAM内存分为:DRAM(动态随机存储器):数据保持时间短,需要动态刷新 。集成度高,价格便宜;SDRAM为DRAM中的一种,比如常用芯片W9825G6KH-6,IS42S16160G-6TLISRAM(静态随机存储器静态):无需刷新。缺点,结构复杂,集成度低,价格高,速度超快。常用有IS61LV102416 16MbitROMROM(Read Only Memory):断电后保留数据,PROM:一次性; EPROM、EEPROM可擦除。常用芯片有转载 2021-02-14 10:29:28 · 429 阅读 · 0 评论 -
2.8 STM32_按键扫描_安富莱
1、程序优点扩展性非常强,功能比较齐全;bsp_key按键驱动程序用于扫描独立按键,具有软件滤波机制,采用FIFO机制保存键值。可以检测如下事件:按键按下。按键弹起。长按键。长按时自动连发。我们将按键驱动分为两个部分来介绍,一部分是FIFO的实现,一部分是按键检测的实现。bsp_key.c 文件包含按键检测和按键FIFO的实现代码。bsp.c 文件会调用bsp_InitKey()初始化函数。bsp.c 文件会调用bsp_KeyScan按键扫描函数。bsp_timer.c 中的Syst原创 2020-10-15 09:49:46 · 2843 阅读 · 0 评论 -
2.9 PID控制算法(一)
PID控制专题主要内容:1.常用的控制算法与PID控制算法的异同点;2.PID控制算法的理论分析3.基于单片机的PID算法实现4.PID算法的工程应用的一些注意事项5.演示板电路分析6.PID算法C语言实现—基于ARM-CortexM3(STM32)的增量式PID温度控制 **一、常用的控制算法:**1.控制系统的基本结构:控制目的:控制的根本目的就是要使控制对象当前的状态值与用户的设定值相同(最大限度的接近)。基本思想:用户设定值SV与被控制对象当前的值PV两者原创 2020-10-25 14:43:57 · 2186 阅读 · 0 评论 -
2.10 PID控制算法(二)
关于PID各种整理例程基于stm32,位置式,增量式等1、增量式1.1 增量式 方式1struct t_pid2{ float SetSpeed2; float ActualSpeed2; float err2; float err_next2; float err_last2; float Kp2,Ki2,Kd2;}pid2;void PID2_init(){ pid2.SetSpeed2=0.0; pid2.ActualSpeed2=0.0; pid2.err2=0.0;原创 2020-10-26 16:27:16 · 684 阅读 · 0 评论 -
2.11 PID控制算法(三)----PID结果与实际值的关联
1、AD采样,经过PID计算的值,怎么和PWM对应起来?2、电机编码采样,经过PID计算的值,怎么与速度对应起来?这个简单,PID控制原理就是输出一个控制量,然后检测反馈,由反馈得到的数据计算当前实际输出是多少,由这个实际输出和目标输出得到差值,最后由这个差值计算一个新的输出控制量。举例(数据都是乱拟的,只为好计算):假设你的PWM是用来控制电机速度的,0%占空比对应的电机速度是0r,100%占空比对应的电机速度是100r。你目标电机速度是50r,那么调控步骤如下:输出50%占空比的PWMAD采原创 2020-10-30 11:26:49 · 18748 阅读 · 8 评论 -
2.11 PID控制算法(四)补充
【代码】2.11 PID控制算法(四)补充。原创 2023-02-04 11:04:08 · 734 阅读 · 0 评论 -
2.12 FreeRTOS_RingBuff 环形缓存数组的使用
前面我博客写了一篇《STM32 串口传输最佳处理方式 FreeRTOS+队列+DMA+IDLE(一)》就是利用RingBuff环形缓存数组来存数据,大家可以看着那边代码来看。详细描述一下里面的原理:看一下入队函数static uint16_t ps_tbwr_Blue=0;//缓存所在指针//入队的结构体typedef struct { uint16_t start_addr;...原创 2020-03-04 15:39:37 · 4287 阅读 · 7 评论 -
2.13 STM32 串口传输最佳处理方式 FreeRTOS+队列+DMA+IDLE (一)
如何处理串口通信大数据,FreeRTOS+DMA+空闲中断原创 2019-09-06 11:18:39 · 8590 阅读 · 2 评论 -
2.14 STM32 串口传输最佳处理方式 FreeRTOS+队列+DMA+IDLE (二)
紧接着上一篇文章,如何合理处理多个串口接收大量数据。此种方法,很厉害,很NB可节省大量CUP资源。并且FreeRTOS任务处理的非常合理。中心思想:1、开启DMA 环形接收数据模式。2、触发接收数据中断。3、把数据长度、地址 入队。4、再开辟一个函数专门处理数据的出队函数。原创 2019-09-06 16:13:07 · 6647 阅读 · 7 评论 -
2.15 keil使用电脑端时间日期
keil时间调用原创 2022-08-03 16:02:52 · 953 阅读 · 0 评论 -
2.16 SPI协议的4种模式
四线控制SDO - 主设备数据输出,从设备输入 对应MOSISDI - 主设备数据输入,从设备输出 对应MISOSCLK - 时钟信号,由主设备产生CS - 从设备使能信号,由主设备控制。原创 2022-12-30 13:53:36 · 1545 阅读 · 0 评论 -
2.17 STM32 SysTick—系统定时器
SysTick—系统定时器是属于 CM4 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK 等于 180M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为 SysTick 是属于 CM4 内核的外设,所以所有基于 CM4 内核的单片机都具有这个系统定时器,使得软件在 CM4 单片机中可以很容易的移植。原创 2023-01-10 10:33:11 · 776 阅读 · 0 评论 -
2.18 使用keil自带软件调试IO
ODR 是一个端口输出数据寄存器也只用了低 16 位。该寄存器为可 读写,从该寄存器读出来的数据可以用于判断当前 IO 口的输出状态。而向该寄存器写数据,则可以控制某个 IO 口的输出电平。该寄存器的各位描述如下图所示:使用如下:如上图所示,勾选即可控制LED灯,PD3 PD4、 PD5。原创 2023-05-10 15:20:22 · 1431 阅读 · 0 评论