MCU_wb
码龄8年
关注
提问 私信
  • 博客:405,081
    405,081
    总访问量
  • 97
    原创
  • 21,821
    排名
  • 238
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2016-06-01
博客简介:

qizhi321123的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,530
    当月
    18
个人成就
  • 获得362次点赞
  • 内容获得24次评论
  • 获得1,916次收藏
  • 代码片获得857次分享
创作历程
  • 22篇
    2024年
  • 22篇
    2023年
  • 36篇
    2022年
  • 21篇
    2021年
成就勋章
TA的专栏
  • 面试题
    1篇
  • ESP32
    1篇
  • UCOS
    1篇
  • 汇编
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

STM32CubeMX生成RT-Thread工程代码

6.由于生成的RT-Thread工程代码中cpu_cache.c文件中包含#include 头文件,而生成的工程代码中没有board.h文件,所以需要新建一个board.h文件。7.由于生成的工程代码中没有创建RT-Thread任务,所以需要新建创建任务的文件,新建app_rt_thread.h文件,新建app_rt_thread.c文件。RT-Thread版本:X-CUBE-RT-Thread_Nano,Release version :4.1.1。
原创
发布博客 2024.11.08 ·
377 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

使用STM32CubeMX移植STM32H743芯片RT-THREAD系统

2、在 \Middlewares\Third_Party\RealThread_RTOS\bsp_template\cubemx_config 目录下创建board.h头文件并把以下内容复制粘贴到新创建的board.h里。在上图中在STM32H743上面的RT-THREAD系统执行了 ps 和list_thread两条指令,说明此次在STM32CubeMX移植RT-THREAD成功。//添加如下一行代码,如果没有这行代码,会在MAIN线程中会一直占用CPU,而不会切换到其它线程。
转载
发布博客 2024.11.07 ·
78 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STM32内核DWT精确延时详解

在Cortex-M里面有一个外设叫DWT(Data Watchpoint and Trace),该外设有一个32位的寄存器叫CYCCNT,它是一个向上的计数器,记录的是内核时钟运行的个数。(3)、使能CYCCNT寄存器,这个由DWT_CTRL(代码上宏定义为DWT_CR)的位0控制,写1使能。DWT_CYCCNT为内核的计数次数,SysClockFreq为内核时钟频率。(假设内核频率为400M,内核跳一次的时间大概为1/400M=2.5ns)GET_CPU_ClkFreq()为内核的时钟频率。
原创
发布博客 2024.08.02 ·
575 阅读 ·
6 点赞 ·
0 评论 ·
6 收藏

MATLAB使用系统辨识工具箱建立PID水温的传递函数系数

最后点击Import选项。(1).以PID控制水温为例子,在实际的工程项目中,以PWM的占空比为输入,输出为温度的值,以百分之百的占空比加热水温,将水温从当前温度(例如:30度)加热到100度,记录加热期间每秒钟对应的PWM占空比的值,以及每秒钟对应的水温值,这里为了便于计算以恒定的占空比百分之百加热,记录的数值存储到SD卡中,若没有SD卡可用串口讲记录的数据发送到上位机中,这里以SD卡为例,将每秒钟记录的水温存储到txt格式的文本中。
原创
发布博客 2024.06.30 ·
807 阅读 ·
5 点赞 ·
0 评论 ·
14 收藏

智能车Matlab电机系统辨识和PID仿真自动调参

由于我们的转速的编码器采集的离散数据,所以我们需要将默认的连续性数据选项改为Discrete-time (Ts = 0.0x)(由于后面仿真的时候节点选的都是连续型,这里也就先按连续型做系统辨识,为了尽量保证准确性等我开学回实验室再次验证下之后再更新成离散型。(2).给电机占空比的具体数值,最好使用电机以日常速度跑的时候的占空比。电机在正常运行的区间内,理论上这个关系应该是线性的,用任何占空比最终的效果都会差不多,但考虑到实际情况还是在日常使用的占空比范围区间内选取定值比较好,不过也不用过于纠结这里。
转载
发布博客 2024.06.29 ·
218 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

STM32将外部SDRAM空间作为系统堆(Heap)空间

为了解决这个问题,首先可以将外部sram的初始化函数提前,放到SystemInit函数中调用,cube生成的stm32代码已经为我们提供了这样的接口,这样__main就可以正确运行,然而这还没有解决SystemInit本身执行的问题,我们需要保证SystemInit执行时使用STM32内部RAM。注意这里的0x02000000的大小为32M,因为这里我们采用的SDRAM的芯片大小是32M,将此32M的空间全部用作堆(Heap)空间,也可以只用SDRAM芯片的一部分空间作为堆空间。查询申请的堆空间的地址。
原创
发布博客 2024.06.24 ·
1051 阅读 ·
12 点赞 ·
0 评论 ·
21 收藏

stm32 上用 Zbar 库识别BMP格式二维码

目前能在网上找到的二维码资料,都是编码居多,也就是从一串字符串生成二维码(常用算法如 QRCode),而解码识别方面的参考教程比较少。二维码解码库有 Quirc、Zbar 等,更多的开发者是用在安卓、OpenCV 和 Python 等高级环境上,对于 MCU 级别的使用,并且基本是经过封装后的实现,灵活性较差。这里说明一下,Zbar 库要求输入的是灰度图像数据(也就是黑白照),每个像素用一个字节表示灰度,从 0x00 全白到 0xff 全黑,有了图像数据,再传入图像的宽高便能解码了。
转载
发布博客 2024.06.15 ·
183 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

STM32H5移植zbar二维码解码库

发布资源 2024.06.15 ·
zip

STM32H5移植zbar记录

ZBar使用C/C++编写,具有高度优化的算法,能够快速准确地读取各种二维码和条形码,包括QR码、Data Matrix码、PDF417码、EAN-13码等等。这里直观的看就是内存问题,奈何如果从源码直接去查找malloc和free的匹配所需时间太大,只能动态调试查找原因,所以第一步,我移植了rt-thread系统,使用rt的内存管理api。总之,ZBar是一种非常有用的嵌入式二维码和条形码扫描库,它提供了高效的解码算法、可定制的解码器和灵活的API,能够轻松地满足嵌入式设备的扫描和解码需求。
转载
发布博客 2024.06.15 ·
176 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

matlab中BP神经网络预测

在应用神经网络的过程中,处理信息的单元一般分为三类:输入单元、输出单元和隐含单元。误差精度: 关于mu参数含义的一种理解是,mu是误差精度参数,用于给神经网络的权重再加一个调制,这样可以避免在BP网络训练的过程中陷入局部最小值,mu的范围为0到1。下图是训练神经网络时经常出现的一个界面,从这部分我们可以看到,输入层的神经元节点个数为2,隐含层的神经元节点个数为5,输出层的神经元节点个数为1,即2-5-1网络结构。(5).网络参数配置(训练次数,学习速率,训练目标最小误差.等)(6).BP神经网络训练。
原创
发布博客 2024.06.05 ·
593 阅读 ·
5 点赞 ·
0 评论 ·
12 收藏

DSP 知识点

我们将其八位全部取反,得到01111111, 然后加1,得到10000000. 将该数看作无符号数,值为128, 故计算机中的10000000表示的是-128。将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。最高位为0的8位有符号数有128个,但全0的那个表示数0,所以总共只能表示127个正整数。有符号整数在计算机中分别占有一个字节(8位),2个字节(16位),四个字节(32位),8个字节(64位)2 若最高位(即符号位)为0,表示正数。
原创
发布博客 2024.05.08 ·
759 阅读 ·
7 点赞 ·
0 评论 ·
5 收藏

越南语输入法使用指南

这两种是借助其他字符件完成越南语的输入,但是在手机上无法使用,打字的速度和Telex差不多。通过26个英文字母键盘来完成越南语29个字母和5个音调的输入,这种方式是最常用的。越南语输入法的打字方式大致有三种:Telex、VIQR、VNI。所以,下面给大家介绍的输入法软件都是Telex 类的。Tôi thích ăn lẩu (我喜欢吃火锅)答案:Tooi thisch awn laaru。字母:a,e,i,o,u,w,y 语音调有效。1、 越南语输入法打字规则。
原创
发布博客 2024.04.26 ·
4438 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

Keil5编译器设置单片机上电复位后RAM数据不被初始化

特别注意:使用此方法,当内存为外部内存时,例如外部SDRAM内存时,则定义的时候必须要在其后面加上zero_init修饰符,否则程序会进入HardFault_Handler。第一步初始化堆栈指针,然后跑SystemInit,再跳到__main,在__main里会把所有RAM清空(sct分散文件),以及加载全局和静态变量。将IRAM区域中的NoInit勾选,即表示在_main中不会被初始化,IRAM中需要填入内存的起始地址和内存的容量大小。通过Keil5编译器设置。
原创
发布博客 2024.04.08 ·
1202 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

STM32H74x RAM知识点

1.STM32H74x RAM分配
原创
发布博客 2024.04.07 ·
312 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

UCOSIII中的系统任务

时钟节拍任务的任务优先级为 OSCfg_TickTaskPrio,时钟节拍任务的优先级尽可能的高一点, 有些 默认设置时钟节拍任务的任务优先级为 1。当把 os_cfg.h 文件中的宏 OS_CFG_ISR_POST_DEFERRED_EN 置 1 就会使能中断服务管 理任务,UCOSIII 会创建一个名为 OS_IntQTask()的任务,如果要使能统计任务的话需要将宏 OS_CFG_STAT_TASK_EN 置 1,宏 OS_CFG_STAT_TASK_EN 在 os_cfg.h 文件中有定义。
原创
发布博客 2024.03.22 ·
446 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

ST官网各数据包的下载方法

5.在以上打开的网页中点击Get Software,选择对应的版本,一般选择最新的版本,继续点击Get latest下载即可。1.打开网址:https://www.st.com/content/st_com/en.html。3.在以上打开的网页中选择Discover STM32Cube MCU Packages打开网页。4.在以上打开的网页中选择我们需要的数据包,例如我们需要下载H7的数据包,则点击H7即可。2.在以上打开的网页中选择Embedded software,点击后打开网页。
原创
发布博客 2024.03.19 ·
1067 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

STM32中RGB显示屏四个方向显示

发布资源 2024.03.15 ·
rar

STM32CubeMx配置LTDC

设置Display Type,根据电路原理图和显示屏的特性可知,电路图中R0-R7,G0-G7,B0-B7,一共是3*8=24bit线,查看显示屏的数据手册可知显示屏为RGB方式的屏幕,所以此处选择RGB888(24bits)。Horizontal Synchronization Width:此参数为水平同步宽度,单位为时钟周期的数目,此参数实际上对应HSW参数,查看显示屏的数据手册可知HSW的参数范围为1–40,单位为时钟周期,所以此处设置为3。HSync Width:软件自动计算结果。
原创
发布博客 2024.03.15 ·
1494 阅读 ·
5 点赞 ·
0 评论 ·
16 收藏

STM32 SDRAM知识点

而SDRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,功耗较SDRAM大 [1],相同容量的SDRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积。同步就相当于是 当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。异步就是,当客户端发送给服务端请求时,在等待服务端响应的时候,客户端可以做其他的事情,这样节约了时间,提高了效率。
原创
发布博客 2024.03.08 ·
1910 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

Keil软件无法烧录程序的解决方案

(2).确认目标板上电,长按目标板上的复位键,点击魔术棒…至Settings,点击 Settings,再松开目标板上的复位键,此时SWDIO应该会出现目标板,请确认有红框圈中的内容后,点击烧录程序即可。1.由于单片机程序有些情况下出错,导致烧录进去单片机运行异常,无法烧录程序,但是Keil软件可以识别到SW Device器件,点击烧录程序提示no target connected连接。(1).点击魔术棒->debug->Settings,选择under Reset。
原创
发布博客 2024.03.06 ·
2362 阅读 ·
2 点赞 ·
0 评论 ·
9 收藏
加载更多