- 博客(24)
- 资源 (46)
- 收藏
- 关注
原创 ssd1306 OLED 初始化流程
参考博客:https://blog.csdn.net/qq_42992084/article/details/89977888第一次初始化流程第二个初始化流程void OLED_Init(void){ OLED_Config(); OLED_SCK(HIGH); // 空闲态时,SCLK处于高电平 OLED_CS(HIGH); // 关闭选择输入 /* 从上电到下面开始初始化要有足够的时间,即等待 RC复位完毕 */ O...
2021-07-31 23:24:09 12124 1
原创 STM32 DMA控制器
三种传输模式 外设到存储器传输 存储器到外设传输 存储器到存储器传输两个 DMA 控制器 每个 DMA 控制器具有 8 个数据流 每个数据流对应 8 个外设请求 每个数据流都独立拥有四级 32 位 (4个字节) FIFO(先进先出存储器缓冲区) 外设对应的数据流通道FIFO 有4字的FIFO(16个字节的FIFO) 直接模式:每个外设请求都立即启动对存储器传输 突发模式:突发...
2021-07-27 23:38:00 836 5
原创 有源蜂鸣器和无源蜂鸣器的区别
首先大家要了解有源和无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。这就是通过驱动原理来分别的方法。我们再来看看外观上区别:从图a、b外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色...
2021-07-27 13:45:01 3506
原创 STM32F407ZGT6 fatfs出现挂载成功,但是文件读写失败的原因
fatfs 出现挂在成功,但是文件读写失败的原因可能是文件系统损坏,需要在首次挂载文件系统以后重新格式化文件系统文件系统测试代码void testfatfs(){ printf("****** 这是一个SPI FLASH 文件系统实验 ******\r\n"); SPI_FLASH_Init(); HAL_Delay(500); id = SPI_FLASH_ReadID(); printf("flash id =%x \r\n",id); //在外部SPI F
2021-07-25 19:41:37 6265
原创 TVS二极管和稳压二极管区别和原理
1、稳压二极管稳压二极管是一种利用PN结处于反向击穿电压基本保持不变,但是电流可以在一定范围值内变化,稳压二极管在反向击穿电压前具有高阻态,超过这个临界点就处于低阻态。稳压二极管广泛应用于各类稳压电路、电压基准元器件等场合,它可以串联使用,这样可以获得更高的稳压值。稳压二极管在电路中常用“ZD”表示,稳压二极管最主要的几个参数有:稳压值、耗散功率、最大工作电流,在设计电路时候要充分考虑这三个因素,如下图是阻容降压电路,电压输出12V,采用1N4742A稳压二极管,它的稳压值是12V,
2021-07-23 23:26:26 1936
原创 一文看懂压敏电阻和tvs的区别
压敏电阻描述 一、压敏电阻简介 “压敏电阻“是一种具有非线性伏安特性的电阻器件,主要用于在电路承受过压时进行电压钳位,吸收多余的电流以保护敏感器件。英文名称叫“VoltageDependentResistor”简写为“VDR”,或者叫做“Varistor”。压敏电阻器的电阻体材料是半导体,所以它是半导体电阻器的一个品种。现在大量使用的“氧化锌”(ZnO)压敏电阻器,它的主体材料有二价元素锌(Zn)和六价元素氧(O)所构成。所以从材料的角度来看,氧化锌压敏电阻器是一种“Ⅱ-Ⅵ族氧化物半导体
2021-07-23 22:15:55 690
原创 flash 4K扇区写入函数
流程图u8 W25QXX_BUFFER[4096];void W25QXX_Write(u8 *pBuffer, u32 WriteAddr, u16 len){ uint32_t write_len = len; uint32_t section = 0; uint32_t offset = 0; uint32_t remain = 0; uint8_t erase = 0; while (write_len > 0) { erase = 0; secti
2021-07-13 20:50:50 502 1
原创 使用NRF2401 STM32F303ZET6 NUCLEO 开发板
#ifndef __24L01_H#define __24L01_H#include "sys.h"////////////////////////////////////////////////////////////////////////////////////本程序只供学习使用,未经作者许可,不得用于其它任何用途//Mini STM32开发板//NRF24L01 驱动函数//正点原子@ALIENTEK//技术论坛:www.openedv.com//修改日期...
2021-07-10 11:50:18 516 2
原创 开关管三极管和MOS管的选择
(1)控制方式不同,三极管是电流型控制元器件,而MOS管是电压控制元器件,三极管导通所需的控制端的输入电压要求较低,一般0.4V~0.6V以上就可以实现三极管导通,只需改变基极限流电阻即可改变基极电流。而MOS管为电压控制,导通所需电压一般4V~10V左右,且达到饱和时所需电压一般6V~10V左右。在控制电压较低的场合一般使用三极管作为开关管,也可以先使用三极管作为缓冲控制MOS管,一般控制电压高的场合使用MOS管,比如单片机、DSP、powerPC等处理器I/O口电压较低,只有3.3V或2.5V,一般不会
2021-07-09 21:47:46 2451 1
原创 三极管基本知识
导通条件NPN型三极管的导通条件是C点电位>B点电位>E点电位,三极管饱和导通的条件是Ub>Ue,Ub>Uc。PNP型三极管的导通条件是E点电位>B点电位>C点电位,三极管饱和导通的条件是Ue>Ub,Uc>Ub。NPN型三极管1、定义:NPN型三极管,由三块半导体构成,其中两块N型和一块P型半导体组成,P型半导体在中间,两块N型半导体在两侧。三极管是电子电路中最重要的器件,它最主要的功能是电流 放大和开关作用。半导体三极管也称为晶体三极管,
2021-07-06 12:59:07 26182 1
原创 MFC 获取其他窗口的Edit文本和单击Button
auto hmain = ::FindWindow(NULL, L"MFCApplication2"); if (hmain) { //获取窗口句柄 CRect rect; ::GetWindowRect(hmain, rect); CString str; CPoint user_pt; //将user_pt点定位到用户名框内 user_pt.x = rect.left + 109+10; user_pt.y = rect.top + 148+10.
2021-07-06 10:30:17 804
原创 PID 多环控制
速度环的后级,再串上一个电流环,以前级的输出 (这里指速度环的输出),作为后级的输入 (这里指作为电流环的输入),最终后级 (电流环) 的输出最终实现在执行机构上, 以形成双反馈控 制的效果。在串级 PID 控制中,最外环一般选择期望控制的参数的环节,例如对应速度快慢的速度环、位置的位置环、电流大小的电流环大小,本代码的选择位置环作为最外环,位置作为控制量,期望控制电机实际位置。...
2021-07-05 18:01:42 2566 1
原创 芯片电源引脚的电容选择
主要内容参考如下 DC-100K 10uF以上的钽电容或铝电解 100K-10M 100nF(0.1uF)陶瓷电容 10M-100M 10nF(0.01uF)陶瓷电容 100M以上 1nF(0.001uF) 陶瓷电容和PCB的地平面与电源平面的电容 所以,以后不要见到什么都放0.1uF的电容,有些高速系统中这些0.1uF的电容根本就起不了作用。其他知识先来看看电容,电容的作用简单的说就是存储电荷。我们都知道在电源中要加电容滤波,在每个芯片的电源脚放置一
2021-07-05 15:35:29 4073 2
原创 有源蜂鸣器的驱动设计
核心知识以下电路可以有效的实现蜂鸣器的关断消除蜂鸣器EMI辐射R2的作用第一个作用:R2 相当于基极的下拉电阻第二个作用:R2可提升高电平的门槛电压假定β =120为晶体管参数的最小值,蜂鸣器导通电流是15mA。那么集电极电流IC=15mA。则三极管刚刚达到饱和导通时的基极电流是 IB=15mA/120=0.125mA。流经R2的电流是0.7V/3.3kΩ=0.212mA,流经R1的电流 IR1=0.212mA +0.125mA=0.337 mA。最后算出BUZZER端的门槛电压
2021-07-05 15:29:00 2141
原创 markdown文件便捷说明
参考文章https://zhuanlan.zhihu.com/p/99319314#一级标题大发发发dfafaf##二级标题正文内容###三级标题<!--下边是个分割线-->****************第一项*第一节*第二节*第三节*第二项*第三项*第四项+第一项+第一节+第二节+第三节+第二项+第三项-...
2021-07-04 23:28:48 113
原创 电机原理和参数
1.编码器增量编码器只输出设备的位置变化和方向;根据信号的相位来判定方向;脉冲的频率判定速度;z通道只有一个信号,可以判定位置绝对编码器,含有多个码道1.1.编码器参数分辨率: 一圈产生的脉冲数量;ppr,其分辨率表示为编码器转轴旋转一圈所产生的脉冲数,即脉冲数/转 也叫多少线精度: 读数和实际位置的最大误差,角度、角分,最大响应频率, 每秒输出的脉冲数量信号输出形式 直接/协议1.2.STM32编码器结构图 1-1STM32编码器结构1.3.电机速度、方向的计算方法编码器
2021-07-04 15:55:39 3164
原创 PID算法学习笔记
位置式PID算法积分环节替换为累计的形式实现/** * @brief PID算法实现 * @param actual_val:实际值 * @note 无 * @retval 通过PID计算后的输出 */float PID_realize(float actual_val){ /*计算目标值与实际值的误差*/ pid.err=pid.target_val-actual_val; /*误差累积*/ pid.integral+=pid.err; /*
2021-07-04 00:44:28 2372 3
原创 STM32 编码器的CUBEMX的使用
CubeMx的设置方法CubeMx生成编码的相关代码底层初始化/*** @brief TIM_Encoder MSP Initialization* This function configures the hardware resources used in this example* @param htim_encoder: TIM_Encoder handle pointer* @retval None*/void HAL_TIM_Encoder_MspInit(TIM_Hand
2021-07-04 00:08:44 1339 2
原创 按键检测电路和代码
硬件电路设计了电容硬件滤波,设计TVSuint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin){ /*检测是否有按键按下 */ if(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin) == KEY_ON ) { /*等待按键释放 */ while(HAL_GPIO_ReadPin(GPIOx,GPIO_Pin) == KEY_ON); return KEY_ON; } else re
2021-07-03 22:37:58 1740
原创 VSCODE打开野火电机代码需要增加的配置 c_cpp_properties.json
不增加配置找不到函数的定义settings.json{ "files.associations": { "bsp_debug_usart.h": "c" }, "C_Cpp.inactiveRegionOpacity": null, "C_Cpp.intelliSenseEngineFallback": "Disabled", //需要添加的 "C_Cpp.intelliSenseEngine": "Tag Parser",}c_cpp_pro
2021-07-03 13:56:37 324
原创 PID算法的EXCEL模拟实现
增量式PID算法公式:在表格里可以看见PID算法在目标值和实际值差异较大时,控制量也很大,主要是比例环节起到主要的调节作用,在目标值和实际值相等时,主要的控制量是积分环节,比例和微分环节不参与控制;...
2021-07-03 13:16:07 1712
fal移植测试demo
2024-08-13
基于N32L406+FlashDB(时序数据库 时序数据库)+mdk5 移植教程
2024-08-01
基于N32L406MB EasyFlash参数(key-value)记录库移植
2024-07-31
N32L40x letter-shell终端裸机移植
2024-07-31
基于N32L406 Freertos letter-shell开源终端移植
2024-07-31
N32L406 移植MultiTimer教程 mdk5
2024-07-30
【RTT驱动框架分析03】- sfus flash 操作库的分析和基于STM32F103RCT6+CUBEMX的SFUS移植教程
2023-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人