- 博客(52)
- 收藏
- 关注
原创 【AUTOSAR CP】了解FlashDriver
在AUTOSAR CP开发中,Flash Driver是管理Flash存储器的关键模块,本文讲解掌握AUTOSAR CP中Flash Driver的使用技巧。
2025-03-23 17:05:22
1622
原创 【STM32】GuiLite基于HAL库的移植
本文介绍了在STM32单片机上移植GuiLite轻量级GUI框架的全过程。通过STM32CubeMX配置硬件IIC接口驱动0.96寸OLED屏,在Keil MDK开发环境中完成工程搭建。重点阐述了GuiLite框架的移植方法,包括画点函数接口的实现、C/C++混合编程的注意事项、OLED刷新机制等关键技术点。该方案成功在STM32F103RCT6核心板(72MHz主频)上运行,实现了HelloCircle示例程序的显示效果。文中提供了完整的工程文档链接,为嵌入式开发者实现轻量级GUI提供了实用参考。
2022-06-03 23:56:47
2595
2
原创 【STM32】HAL库在4针脚0.96寸OLED屏上的移植---硬件IIC(一)
摘要:本文介绍了基于STM32F103C8T6核心板通过IIC总线驱动0.96寸OLED屏的实现方法。内容包括IIC总线原理(软件IIC与硬件IIC对比)、硬件接线(SCL/PB6、SDA/PB7)、STM32CubeMX配置(时钟设置72MHz、IIC模块初始化)以及Keil MDK-ARM工程移植(添加OLED驱动文件)。最终实现OLED显示功能,并提供了完整工程开源链接。该方案采用硬件IIC通信,具有效率高、接线简单(仅需4线连接)的特点,适合嵌入式显示应用开发。
2022-06-01 20:55:08
10266
11
原创 【Hexo】GitHub+Typora写博客+图片上传
本文介绍了如何配置Typora编辑器与Hexo博客的图片存储路径。首先在Hexo的source目录下创建imgs文件夹存放图片,然后在Typora偏好设置中指定图片保存路径为"../../source/imgs/${filename}"。使用时需在Markdown文件头部添加"typora-root-url: .."声明根目录,并通过Hexo命令生成和预览博客内容。这种配置方式能自动将插入的图片保存到指定路径,确保博客中的图片正常显示。
2022-05-07 14:59:27
3847
5
原创 【Hexo】GitHub_Page绑定阿里云域名
前言对于使用Github_Pages的小伙伴来说,Github自带的xxx.github.io网址,很容易被挡掉,就像这样▼我猜大概率是因为这种网址没有证书、没备案之类的,导致浏览器检测不安全,用正规的浏览器很容易被挡掉那么看来还是很有必要入手一个域名来访问自己的网址网页预览:Qの小站目录一、阿里云1.1 域名注册1.2 域名解析二、Github2.1 Pages设置2.2 新建CNAME文件效果一、阿里云第一步当然是注册阿里云了,相信这个大家都会的,直接跳过了~1.1 域名注册在这
2022-05-06 13:12:01
1181
原创 【电路】电容(四)——旁路电容
目录一、旁路电容二、实例电路讲解2.1 信号的输入2.2 信号的放大2.3 电阻对放大效率的影响一、旁路电容旁路电容:是可将混有高频电流和低频电流的交流电中的高频成分旁路滤掉的电容。 对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling,也称退耦)电容是把输出信号的干扰作为滤除对象。这是百度上对于旁路电容的介绍,说实话介绍的功能有点雷同于滤波电容,但我想了想,应该不止于这一个功能,上网查了查资料,今天来重新定义一下旁
2022-05-03 18:49:40
9709
4
原创 【电路】电容(三)——耦合、退耦电容
一、耦合电容什么是耦合?两个或两个以上的电路构成一个网络时,若其中某一电路中电流或电压发生变化,能影响到其他电路也发生类似的变化,这种网络叫做耦合电路。耦合的作用就是把某一电路的能量输送(或转换)到其他的电路中去1. 电源——导线——电阻电源通过导线,将能量转换到电阻上去了,通过导线完成了耦合2. 电源——电阻——LED灯电源通过电阻将能量转换到LED灯上,即通过电阻完成了耦合看完这两个例子,对耦合大概有了个基本的概念,常见的会有直接耦合、间接耦合、电容耦合、电阻耦合、电感耦合等等…耦合
2022-04-18 22:44:00
8436
3
原创 【STM32】——迷你示波器
前言目前网上已经有挺多开源STM32示波器的项目,整合了一下网上的资源,自制了一款成本极低的基于STM32F103C8T6(某宝二十几RMB)示波器,成本控制在40RMB以内,当然,用正版C8T6效果更好,盗版的效果会差一些,不过本项目更多是DIY学习的成分多一些,与正规示波器有较大差距,请当成一款娱乐电子器件器件:器材数量参数电位器15KOLED屏10.96寸7针脚贴片按键4STM32F103C8T6核心板10603电容40.1uf
2022-04-15 22:13:37
2580
4
原创 【电路】电容(二)——滤波电容
滤波电容滤波电容在电路中随处可见,是指安装在整流电路两端用以降低交流脉动波纹系数提升高效平滑直流输出的一种储能器件。由于滤波电路要求储能电容有较大电容量。所以,绝大多数滤波电路使用电解电容。电解电容由于其使用电解质作为电极(负极)而得名。来看下图的一个电路由3部分构成,交流输入部分 + 整流部分 + 滤波部分1. 交流部分交流部分就是变压器将220V的交流电转换成需要的电压,本文假设交流输入为15V2. 整流部分下图为15V交流电的波形图画的很标准这里的15V是峰值,有效值 = 15
2022-04-06 12:45:11
11030
4
原创 【电路】电容(一)——浅析大小电容的高低频滤波、并联问题
高频电路中电容的等效模型与滤波特性分析 摘要:本文分析了高频电路中电容的实际阻抗特性及其滤波作用。理想电容模型在实际应用中需考虑寄生参数(ESR和ESL),形成串联等效电路。电容的阻抗频率特性呈现V形曲线,在自谐振频率点阻抗最小。大容量电容因寄生电感较大,适用于低频滤波;小容量电容则更适合高频滤波。实际应用中常采用大小电容并联的方式,以降低等效串联电阻、提高稳定性、扩展退耦频带并抑制大电容的寄生电感效应。这种组合方式能有效提升电源滤波性能,确保电路在不同频率段都具有良好的噪声抑制能力。(149字)
2022-04-03 22:23:35
20617
13
原创 【Altium Designer】PCB如何生成Gerber文件
1.什么是Gerber文件?Gerber文件是一款计算机软件,是线路板行业软件描述线路板(线路层、阻焊层、字符层等)图像及钻、铣数据的文档格式集合,是线路板行业图像转换的标准格式。PCB文件是指工程师设计出来的文件Gerber文件是通过PCB文件转出来的一个文件,是给PCB生产厂商使用的当我们设计好PCB的时候,需要向厂家提供PCB文件进行打板制作,但有些厂家要求提供Gerber文件进行打印正规性: 其实正规的流程是提供Gerber文件,因为这是一种国际通用文件,并且有些打板机器只能识别Ger
2022-03-28 13:09:46
17865
1
原创 【STM32】HAL库在7针脚0.96寸OLED屏上的移植---软件SPI(二)
前期准备:STM32CubeMXSTM32C8T6核心板IDE Keil(MDK-ARM)杜邦线×70.96寸OLED屏(7针脚)SPI背景和接线1.什么是SPISPI英文缩写“Serial Peripheral Interface”,是一种串行外设接口,是一种四线制的同步串行通信接口,用来连接MCU、传感器、存储设备SPI是全双工且SPI没有定义速度限制,通常能达到甚至超过10 Mbps,这也是为什么SPI被广泛使用的原因而SPI分为软件SPI和硬件SPI,因为SPI是一种需要时序
2022-03-20 17:55:49
11018
12
原创 【STM32】HAL库在7针脚0.96寸OLED屏上的移植---硬件SPI(一)
摘要:本文介绍了基于STM32F103C8T6核心板通过SPI接口驱动0.96寸OLED屏幕的完整实现过程。内容包括:SPI通信原理(四线制全双工同步串行接口)、硬件接线图示(SCK/SDA/RST/DC/CS等7线连接)、STM32CubeMX配置(时钟72MHz、SPI1主机模式、4分频)、Keil工程移植OLED驱动文件的方法,以及最终实现的显示效果展示。项目提供了完整的工程文档,适合STM32初学者学习SPI外设驱动开发。
2022-03-19 15:59:44
12128
18
原创 3D旋转相册
效果如图:一、图片准备12张.jpg文件的照片,命名为1~12.jpg图片尽量不要特别长或者特别宽,比例不协调有时候显示不出来二、代码index.css文件:html{ background: #000; height: 100%; }/*最外层容器样式*/.wrap{ position: relative; position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 200px; hei
2022-02-23 21:03:32
1538
2
原创 【Hexo】Next主题添加Valine 评论系统
一、LeanCloud进入LeanCloud▶ 控制台▶ 创建应用▶ 开发版,名称随意▶ 数据存储 ▶ 结构化数据创建两个 Class,分别是 Comment 和 Counter,权限设置为所有人。▶ 设置 ▶ 应用凭证 复制AppID、AppKey二、Valine CDN 链接然后在 https://www.jsdelivr.com/package/npm/valine 中复制最新的 Valine 的 CDN 链接因为是外网,不一定能访问得上,在此将最新链接贴上,不定
2022-02-23 18:17:44
754
4
原创 【Hexo】Next主题添加全局播放翻页不间断的网易云音乐
前言网页预览:Qxiaofei69.github.io如果有想入手Hexo博客但没有任何思路,看网上资料一头雾水,推荐B站这个up主的入门教程传送门一、网易云外链打开网易云音乐,将喜欢的歌都加入歌单,然后点击生成外链调整插件的大小,这里建议第二个就可以了,不大不小,然后复制HTML代码二、插入代码打开/themes/next/layout/_macro/sidebar.swig文件在下图位置插入代码刚复制的代码鉴于每个人侧边栏位置不同,具体效果自行调整三、修改属性在Next主题
2022-02-22 17:40:48
2118
5
转载 【信号】“说人话”之——傅里叶变换、拉普拉斯变换、Z变换有什么联系
基础科普首先既然要讲信号,那就离不开正弦波,高中学过sinθ、cosθ函数,分别称他们为正弦函数和余弦函数。But,实际应用中,不管是sinθ还是cosθ都统称为正弦函数以sinθ为例: sinθ = y / r 当这个点绕这个圆逆时针转动,sinθ的值如下图所变化当我们引入动态的概念后,正弦值不再是一个单纯的值,而是引申出了波的概念这个点围绕的圆有多大——>波幅这个点旋转的速度有多快——>角速度——>频率这个点最初的位置在哪里——>相位数学表达式——&g
2022-01-13 22:22:59
2516
1
原创 【C语言】字符串输入的三种方式
本文介绍了C语言中三种字符串输入方式的区别:1) gets()函数直接从输入缓冲区读取字符串并丢弃换行符;2) getchar()逐个字符读取,可处理空格和换行;3) scanf()遇空格结束输入且会残留换行符。重点对比了gets()和scanf()在缓冲区处理上的差异,指出使用scanf()后需用getchar()清除残留换行符。三种方式各有特点,gets()适合带空格的完整字符串输入,getchar()更灵活但代码复杂,scanf()简洁但有输入限制。
2021-12-25 14:23:13
197941
31
原创 【嵌入式】OpenMV与单片机串口通信交互
OpenMV与TC264单片机通过串口通信实现协同工作。OpenMV负责图像识别并通过串口发送数据,TC264接收数据后执行控制任务。示例中OpenMV发送"Hello World!",TC264收到后关闭LED。硬件连接将OpenMV的P4(Tx)接TC264的P14_1(Rx),OpenMV的P5(Rx)接TC264的P14_0(Tx),双方均设置19200波特率。这种方案充分发挥了OpenMV的图像处理能力和TC264的控制计算优势,适用于需要视觉识别的嵌入式系统。
2021-11-13 21:38:19
9375
12
原创 【电路】通俗易懂讲解上、下拉电阻为何能拉高、低电平
摘要 拉电阻(上拉/下拉电阻)用于稳定数字电路中不确定的信号状态。上拉电阻连接电源,将不确定信号箝位至高电平;下拉电阻接地,箝位至低电平。典型应用如按键电路,通过上拉电阻确保初始高电平状态。原理是利用并联电阻改变分压比,提高输出电平稳定性(如单片机IO口通过并联电阻削弱内部分压)。通常选用10kΩ电阻,具体阻值需根据实际电路和负载确定。
2021-09-23 18:02:05
73926
13
原创 【算法】ADC滤波的10种经典算法
1、限幅滤波法(程序判断滤波法)根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值优点:能有效克服因偶然因素引起的脉冲干扰缺点无法抑制那种周期性的干扰平滑度差import matplotlib.pyplot as plt#限幅滤波法(程序判断滤波法)test_list = [50,52,53,51,53,63,59,55,52,50]
2021-09-09 16:18:30
16360
9
原创 【C语言】基本常识及知识点
C语言常识# 标识符 告诉编译器 # 后边的进行替换include 包含头文件的路径< > 表示 头文件直接去 C 库查找, "" 表示 先在当前路径下找头文件,如果没有再去 C 库找stdio.h 是标准输入输出的头文件(C基础函数环节 带领大家自己封装头文件) C语言中头文件不一定必须是 .h 后缀,但是书写传统 都是以 .h 为后缀作为头文件此文件中声明了标准 C 库的标准输入输出函数 如 :printf scanf gets puts 这些函数的逻辑被编译成标
2021-09-07 22:05:02
4615
6
原创 【C语言】一文彻底理解指针,通俗易懂
前言众所周知,C语言是较为底层的语言,许多操作是直接对内存进行操作,既然谈到C语言,那就不得不说道C语言的独特之处——指针针对int *p 进行讲解,当你能理解这3个后,指针就明白了一、 变量存储过程及原理1.赋值结果是9我们需要知道对于int a = 9;这句话,计算机做了什么?定义aint a,在内存中开辟了一个int大小的空间,也就是4个字节(32位),然后将这个空间分配给了a,这就是a的空间了给a赋值a = 9,在a的空间里存放9这个数,然后将十进制的9转换成二进制的9
2021-08-26 14:44:38
6509
5
原创 【STM32】HAL库——串口DMA通信(三)
摘要: 本文详细介绍了STM32中DMA(直接存储器访问)的原理与应用。首先阐述了DMA的基本概念、工作模式(正常/循环传输)及优先级管理机制,分析了其在高速数据传输中的优势。接着通过STM32CubeMX配置流程,展示了如何为USART1设置DMA传输通道,包括时钟配置、DMA参数设定等关键步骤。最后提供了基于Keil MDK的DMA串口发送实现代码,并介绍了利用串口空闲中断实现接收数据长度判断的方法。文章完整呈现了从理论到实践的DMA应用过程,为STM32开发中的高效数据传输提供了实用参考。
2021-08-21 20:37:17
21092
15
原创 【STM32】HAL库——按键原理及消抖
前期准备:STM32CubeMXSTM32RCT6核心板IDE Keil(MDK-ARM)什么是按键消抖?按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖按键工作原理这是最基本的按键电路,以KEY1为例:3.3V流经10k电阻(限流电阻),经过按键再流入地,但是按键常态是松开的,也就是说这条路常态
2021-08-19 17:16:21
10886
3
原创 【算法】通俗易懂的PID算法
初识PIDPID算法是连续系统中技术最为成熟、应用最为广泛的一种控制算法。该控制算法出现于20世纪30至40年代,PID 控制器以各种形式使用超过了 1 世纪,广泛应用在机械设备、气动设备 和电子设备。在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法PID简介Proportional(比例)、Integral(积分)、Differential(微分)的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法U(t):控制器的输出量kp:比例系数T
2021-08-02 23:39:31
19100
2
原创 【Altium Designer】常用快捷键大全
TE泪滴化G切换最小栅格单位D+R设置布线规则,Clearance(最小安全线间距)常用Shift+鼠标悬停鼠标悬停的那一路全部微亮Ctrl+鼠标左键点击的那一路全部高亮(一直高亮),Ctrl+鼠标左键点击空白处退出高亮2PCB切换成2D模式3PCB切换成3D模式Shift+鼠标左键多选元器件、线路Ctrl+Shift+T、B、R、L将选中的元器件、线路等分别上、下、右、左对齐M+I将选中的元器件翻转E+M+O将选中的元器件旋转你想要的角度P+G铺铜D+S+.
2021-07-31 22:37:30
7467
原创 【Altium Designer】PCB的泪滴化
1. 什么是泪滴?无泪滴:泪滴化:发现焊盘的连线被“润色”了一下,看起来更加丝滑了2. 为什么要泪滴化处理?添加泪滴可以让电路在PCB板上的连接更加稳固,可靠性高,这样做出来的系统才会更稳定避免电路板受到巨大外力的冲撞时,导线与焊盘或者导线与导孔的接触点断开,也可使PCB电路板显得更加美观对于焊接时,可以保护焊盘,避免多次焊接是焊盘的脱落,生产时可以避免蚀刻不均匀、过孔偏位出现的裂缝等,使信号传输时平滑阻抗,减少阻抗的急剧跳变,避免高频信号传输时由于线宽突然变小而造成反射,可
2021-07-31 22:14:05
9229
原创 【Altium Designer】新建工程
Altium Designer的文件体系Altium Designer的一个工程,包含了4个重要文件,其他文件可有可无,这4个文件是非常重要的,由这4个文件,构成了最基本的Altium Designer工程SchDoc(原理图)SchLib(原理图库)PcbDoc(PCB)PcbLib(PCB库)原理图原理图,顾名思义就是表示电路板上各器件之间连接原理的图表由原理图延伸下去会涉及到PCB layout,也就是PCB布线,当然这种布线是基于原理图来做成的,简单来说就是电路图图为原理图(
2021-07-30 17:54:01
5994
原创 【STM32】HAL库 ——DAC
前期准备:STM32CubeMXSTM32RCT6核心板IDE Keil(MDK-ARM)STM32CubeMX部分1. 配置时钟选择STM32F103RCTx系列芯片,配置时钟的同时会自动配置IO口引脚将HCLK设置为最大频率72MHz2. 配置DAC什么是DAC?数模转换器,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器简单来讲,就是将键盘敲上去的一堆数字,变成看不见摸不
2021-07-26 16:40:43
12000
3
原创 【STM32】HAL库——ADC
前期准备:STM32CubeMXSTM32RCT6核心板IDE Keil(MDK-ARM)STM32CubeMX部分1. 配置时钟选择STM32F103RCTx系列芯片,配置时钟的同时会自动配置IO口引脚将HCLK设置为最大频率72MHz2. 配置ADC什么是ADC?ADC即模拟数字转换器(Analog-to-digital converter)是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。一个模拟数字转换器可以提供信号用于测量。与之相对的设备成为数字模拟转换
2021-07-25 23:02:55
17665
5
原创 【STM32】芯片自锁、No Cortex-M SW Device Found/HardFault_Handler无法下载等问题的解决办法
当STM32无法下载代码后,错误一般是JLink info:DLL: V4.86b, compiled Jun 27 2014 20:11:00Firmware: J-Link V9 compiled Dec 13 2019 11:14:50Hardware: V9.40S/N : 59406895Feature(s) : RDI, GDB, FlashDL, FlashBP, JFlashJLink Info: STM32Fxxxx: Cannot attach to CPU. Tryi
2021-07-24 20:39:35
11117
2
原创 【STM32】HAL库——定时器PWM输出
本文介绍了使用STM32CubeMX和Keil MDK-ARM开发环境配置STM32F103RCT6的PWM输出功能。主要内容包括:1) 在STM32CubeMX中配置时钟至72MHz;2) 详细讲解PWM工作原理,包括定时器选择、计数模式、输出模式和工作频率计算;3) 具体演示如何配置TIM1_CH1通道的PWM参数;4) 在Keil中实现PWM占空比动态调节的代码实现。文章提供了完整的配置流程和关键代码片段,适合初学者快速掌握STM32的PWM功能开发。
2021-07-24 19:08:00
39167
13
原创 【STM32】HAL库——串口中断通信(二)
摘要: 本文介绍了基于STM32F103RCT6开发板的串口中断配置与实现方法。首先通过STM32CubeMX配置时钟(72MHz)、USART1串口(115200波特率)及GPIO引脚,并生成工程代码。随后在Keil MDK中重定义Printf函数实现串口打印,并详细讲解串口中断接收函数HAL_UART_Receive_IT和回调函数HAL_UART_RxCpltCallback的使用。通过中断接收数据控制GPIO电平翻转,最终结合串口助手验证功能。文章涵盖硬件配置、代码重定向及中断处理流程,为STM32
2021-07-23 13:46:48
37672
31
原创 【STM32】HAL库——定时器溢出中断
本文介绍了使用STM32F103RCT6单片机实现定时器中断控制LED闪烁的详细步骤。首先通过STM32CubeMX配置时钟(72MHz)、定时器TIM1(1ms中断周期)和GPIO(PB0输出模式),然后使用Keil MDK编写中断处理代码,在回调函数中实现0.5秒LED状态切换。文章包含完整的配置流程、计算公式、工程建立方法和源码实现,并提供了视频演示和工程文档下载链接。该方案可替代Proteus仿真,实现更可靠的硬件测试效果。
2021-07-22 23:09:12
34766
10
原创 【Python】胡渊鸣的99行代码——冰雪奇缘
14万个水,果冻,和雪“粒子” QQ录屏20210710185902 import taichi as tiimport numpy as npti.init(arch=ti.gpu) # Try to run on GPUquality = 1 # Use a larger value for higher-res simulationsn_particles, n_grid
2021-07-10 19:05:20
3090
原创 【STM32】HAL库——串口通信(一)
前期准备:STM32CubeMXProteus 8IDE Keil(MDK-ARM)Configure Virtual Serial Port Driver(虚拟串口)虚拟串口部分虚拟串口下载链接点击Add pair在Virtual ports 下生成COM1和COM2即成功STM32CubeMX部分1. 配置时钟依旧是选择STM32F103C4系列芯片,配置时钟的同时会自动配置IO口引脚将HCLK设置为最大频率72MHz2. 配置USART我们选择USAR
2021-05-09 16:29:40
7915
1
原创 一行代码如何自定义修改网页内容
就是这一行代码,看好了document.body.contentEditable=‘true’;打开浏览器,按F12进入开发者选项选中console,输入这行代码然后就随便修改
2021-05-01 18:52:10
1474
原创 【STM32】HAL库——按键外部中断
前期准备:STM32CubeMXProteus 8IDE Keil(MDK-ARM)STM32CubeMX部分1. 配置时钟依旧是选择STM32F103C4系列芯片,选择高速外部时钟,配置晶振。将HCLK设置为最大频率72MHz2. 选择IO口PA1、PA2选择GPIO_Output模式,用作点灯PA3、PA4选择GPIO_EXTI模式,用作外部中断3. 引脚模式设置GPIO:level:高电平mode:推挽输出是否上下拉:不上下拉引脚速度:中关于Outp
2021-04-30 17:50:59
18260
10
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅