自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (2)
  • 收藏
  • 关注

原创 结构体数组初始化

《代码大全》建议在变量定义的时候进行初始化,但是很多人,特别是新人对结构体或者结构体数组定义是一般不会初始化,或者不知道怎么初始化。1、初始化typedef struct _TEST_T {int i;char c[10];}TEST_T;TEST_T gst = {1, “12345”};//可以初始化,设置i为1,s为一个字符串.TEST_T gst = {1};//初始化个数少于实际个数时,只初始化前面的成员。TEST_Tgst = {.c=“12345”};//有选择的初始化成

2021-03-17 15:25:57 16619

原创 MCU实现低功耗注意事项

MCU实现低功耗注意事项第一条:掐断外设命脉——关闭外设时钟  先说最直观的,也是工程师都比较注意的方面,就是关闭MCU的外设时钟,对于现在市面上出现的大多数的MCU,其外设模块都对应着一个时钟开关。只需要打开这个外设的时钟,就可以正常的使用这个外设了,当然,此外设也就会产生相应的功耗;反之,如果想要让这个外设不产生功耗,只需关闭它的时钟即可。  第二条:让工作节奏慢下来——时钟不要倍频  除了外设模块功率消耗之外,还有一个功耗大户需要注意一下,这就是PLL和FLL模块。PLL和FLL主要是用来对原

2021-03-15 17:35:28 652

原创 Socket/tcp

Socket通信原理最近看到网络传输资料,觉得写得挺好的,现在记录在自己的博客中,如有侵权,请告知。对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/...

2019-12-19 16:58:23 243

原创 SD卡文件操作

Fatfs文件系统常用函数:f_mount、f_open、f_close、f_read、f_write、f_lseek、f_truncate、f_sync、f_opendirFatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成...

2019-12-10 13:13:07 1737

原创 用STM32Cubemx配置STM32F7 FreeRTOS

用STM32Cubemx配置STM32F7 FreeRTOS先上图①选择使用FREERTOS选项,②FreeRTSO使用了Systick作为时钟节拍,而HAL库也使用了Systick作为HAL_Delay()和各种timeout的时钟基准。因此需要将HAL的时钟基准改为其他TIMER。一般使用一个基本定时器。1、滴答率 1000,表示阻塞时间单位1毫秒2、最大优先级有 7 个,数值越...

2019-12-04 13:49:04 1630

转载 TVS管与稳压二极管的区别

TVS管与稳压二极管的区别TVS管超过它的耐压值后,会瞬间导通短路,反应速度在ns级,而稳压管是稳压作用的,超过它的稳压值,只要功率不超过它的耐受值,就会稳定在它的稳压值范围内。TVS是瞬态抑制二极管,主要是用来抑制瞬时电压尖峰,减少尖峰电压对元器件的损耗。稳压二极管主要是稳压的作用。双向击穿二极管也称瞬态电压抑制二极管(TVS),是一种具有双向稳压特性和双向负阻特性的过压保护器件,类似...

2019-10-08 10:44:53 1499

原创 MDK Error: Q0122E :Could not open file 'xxxx.axf': No such file or directory

在学习iap的过程中想要生成一个bin文件,发现需要在keil的user选项卡中配置下路径,通过fromelf.exe把xxx.axf转换成xxx.bin。但是采用原子的路径配置方法:D:\tools\mdk5.14\ARM\ARMCC\bin\fromelf.exe(这里替换成自己的keil路径) --bin -o …\OBJ\xxx.bin …\OBJ\xxx.axf 发现会报错Err...

2019-06-21 11:44:35 2935

转载 光耦上拉电阻选择

光耦合器(opticalcoupler,英文缩写为OC)亦称光电隔离器或光电耦合器,简称光耦。内部原理如下图所示:简易的说明原理:通过将传输的信号通过左侧的发光二极管转化为光信号,再由右侧光敏三极管将光信号转换为电信号。此处探究的是普通光耦(低速,非线性;是的,也就是最便宜的那种),一般的光耦隔离电压约为6KV,也就是对于静电的抵抗能力(8KV及以上)不强,使用的时候还是需要考虑静电相关的保护...

2019-06-21 08:51:56 4411

原创 stm32 为什么有二个晶振

2个晶振,一个是HSE,常用外部高频,PLL倍频用,常为8MHz。另一个为外部低频晶振,也称时钟晶振,计时用,或系统待机或低功耗时用,为32.768KHz。你是不是要问时钟晶振为什么是32.768KHz ?2^15/32.768KHZ=1秒 定时精度比单片机内部定时高。如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:1)对于100脚或144脚的产品,OSC_IN应接地,O...

2019-06-20 15:10:07 16111 1

原创 结构体指针变量含义,结构体指针函数

最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用。1.结构体类型定义定义方式1:Typedef struct LNode {int data; // 数据域struct LNode *next; // 指针域} *LinkList;定义方式2:struct LNode {int data; // 数据域...

2019-06-13 15:09:48 6095 3

转载 C语言数组在编译器内存在形式

深入学习C语言数组阅读目录:1、多角度理解数组2、数组中几个关键符号3、从内存角度理解指针访问数组的实质4、指针与数组的类型匹配问题1、多角度理解数组:1.1、从内存角度理解数组(1)从内存角度讲,数组变量就是一次分配多个变量,而且这多个变量在内存中的存储单元是依次相连接的。(2)我们分开定义多个变量(譬如int a, b, c, d;)和一次定义一个数组(int a[4]);这...

2019-06-13 13:58:56 671

原创 宏定义#define STR(s) #s 等宏定义后面加#的意思

#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x#define CONS(a,b) int(a##e##b)x##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn(“asdf”, “adf”)结果就是 str = ...

2019-06-12 15:30:10 3762 1

原创 关于各种编译器stdint.h里的 char 和 unsigned char

这个涉及到了 c 语言的发展历史,c 语言是 1969 到 1970 年代之间孕育发展出来的。而且是先有 unix ,后有的 c。早期的硬件条件可想而知和今天无法相比。早期的类型系统也就非常简陋了,所以早期,c 语言里就用了 char 这个基本类型,这个命名早期用途可能是主要为了表达一个字符,但是它成了类型系统里第一个基本类型,大小也给定了,然后此后它已经不可能给改变了,因为最早的人们就这样决定了...

2019-06-12 09:29:01 578

转载 LDO和开关电源

献给那些刚开始或即将开始设计硬件电路的人。时光飞逝,离俺最初画第一块电路已有3年。刚刚开始接触电路板的时候,与你一样,俺充满了疑惑同时又带着些兴奋。在网上许多关于硬件电路的经验、知识让人目不暇接。像信号完整性,EMI,PS设计准会把你搞晕。别急,一切要慢慢来。1)总体思路。设计硬件电路,大的框架和架构要搞清楚,但要做到这一点还真不容易。有些大框架也许自己的老板、老师已经想好,自己只是把思路具体实...

2019-06-10 20:30:26 3099

转载 运算放大器典型电路及原理

1.运算放大器工作原理综述:  运算放大器组成的电路五花八门,令人眼花瞭乱,在分析运算放大器工作原理时倘没有抓住核心,往往令人头大。本文收集运放电路的应用电路,希望看完后有所收获。但是在分析各个电路之前,还是先回忆一下两个运放教材里必教的技能,就是“虚短”和“虚断”。“虚短”是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称虚短。显然不能将两输入端真正短路。...

2019-06-10 20:08:24 92527 17

原创 STM32低功耗之待机模式

STM32的3种低功耗模式:睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行。停止模式:所有时钟都已停止;1.8V内核电源工作;PLL,HIS和HSERC振荡器功能禁止;寄存器和SRAM内容保留。待机模式:1.8V内核电源关闭;只有备份寄存器和待机电路维持供电;寄存器和SRAM内容全部丢失;实现最低功耗。STM32的3种低功耗唤醒方式:这里写图片描述STM32待机模式:...

2019-05-31 15:13:01 671

转载 STM32F103内部FLASH及地址表

在我们应用开发时,经常会有一些程序运行参数需要保存,如一些修正系数。这些数据的特点是:数量少而且不需要经常修改,但又不能定义为常量,因为每台设备可能不一样而且在以后还有修改的可能。将这类数据存在指定的位置,需要修改时直接修改存储位置的数值,需要使用时则直接读取,会是一种方便的做法。考虑到这些数据量比较少,使用专门的存储单元既不经济,也没有必要,而STM32F103内部的Flash容量较大,而且ST...

2019-05-13 19:43:31 22601

转载 加速度计和陀螺仪解析

转载自:http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1695&reltid=676&pre_thread_id=0&pre_pos=1&ext=本帖翻译自IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南。这篇文章主要介绍加速度计和陀螺仪的数学模型和基本算法,以及如何融合这两者,...

2019-05-08 16:51:27 1146

转载 回车换行\r\n

符号 ASCII码 意义\n 10 换行NL\r 13 回车CR回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed在不同的操作系统这...

2019-05-07 13:57:47 266

转载 关于读懂时序图写时序

我们知道,时序图分为理想时序图和实际工作时序图。理想时序忽略了实际高低电平转换时间,而我们实际写程序过程中更希望看到的是实际工作时序图,更清晰明确。图1 理想时序与实际时序物理时序图只要保持操作顺序上的一致性即可。下面我们以8080总线和某spi、IIC总线为例来说明如何通过时序图写逻辑时序:1.下面是某lcd基于8080总线的读写时序:其实这个图主要就是区分WR写控制线...

2019-03-14 14:46:32 9907

原创 MOS管导通条件

PMOS增强型管:uG-uS<0 , 且 |uG-uS|>|uGS(th)| , uGS|th|是开启电压;NMOS增强型管:uG-uS>0,且 |uG-uS|>|uGS(th)| ,uGS|th|是开启电压;PMOS导通是在G和S之间加G负S正电压。NMOS相反。比如AOD409是一款P型MOS管,详细资料可以在alldatasheet里下载芯片资料。其中uGS=...

2019-01-09 11:08:40 32126 2

转载 STM32F103C8T6有128K的Flash

一 序:1 STM32F103C8T6和STM32F103CBT6 引脚相同,唯一的区别是前者为64kflash(0x8000000~0x800FFFF) 后者为128kflash(0x8000000~0x801FFFF);2 已经发现STM32Ff103C8T6 在 00x8010000~0x801FFFF是可读写的;二 ST 技术人员对此回答:STM32F103C8T6和STM32F...

2018-12-27 11:22:00 15483 4

转载 浅析C语言的一个关键字——register

1、register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码,/* Procedure for the assignment of structures, *//* if the C compiler doesn’t support this feature */#ifdef NOSTRUCTASSIG...

2018-12-21 13:37:18 272

转载 转***关于STM32 __IO 的变量定义***

转:https://www.cnblogs.com/mingyunrangwozoudaoxianzai/p/7041518.html这个_IO 是指静态 这个 _IO 是指静态 volatile uint32_t 是指32位的无符号整形变量uint32_t 是指32位的无符号整形变量;搞stm32这么久了,经常看到stm32里面库文件里面有用“_IO”定义的变量,查过一下当时记住了,过段时间...

2018-12-21 11:05:09 264

PID源码及总结以及举例说明

PID源码,直接可用,以及举例说明PID用法,可解决电机,温控等调节。

2019-05-05

STM32串口封装源码,可直接调用

STM32工程中可直接调用USART1-UART5,封装好串口中断,接收指针,数据传输稳定可靠无误。

2018-12-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除