首页 > 其他分享 >学习笔记

学习笔记

时间:2024-03-06 22:14:35浏览次数:17  
标签:函数 VDDA Flash 笔记 学习 OSC VREF VSSA

core

USER:存放工程文件、主函数文件 main.c,以及其他包括system_stm32f10x.c等

CORE :用来存放核心文件和启动文件

OBJ :是用来存放编译过程文件以及hex 文件

STM32F10x_FWLib :用来存放 ST 官方提供的库函数源码文件

SYSTEM:此文件夹里面的代码由 ALIENTEK 提供,是STM32F10x 系列的底层核心驱动函数,可以用在 STM32F10x 系列的各个型号上面,方便大家快速构建自己的工程。

HARDWARE:存放我们其他硬件的代码

1.FATFS简介:

适合嵌入式小型单片机,是一个 独立 的软件层文件系统,我们只需要将底层硬件的读取函数移植到FATFS提供的向下的接口(Media Access Interface),完成之后,就可以像电脑一样使用文件的操作函数(FATFS提供的向上的供我们使用的API函数 (Application Interface) )。

FAFTS中的函数参数介绍中的,IN表示该参数是传入数值;OUT表示,该参数是介质用于存放需要传出数据的载体。

C/C++ Extension Pack什么扩展安装了

USMART是什么?
有了 USMART,你可以轻易的修改函数参数、查看函数运行结果,从而快速解决问题。比如你调试一个摄像头模块,需要修改其中的几个参数来得到最佳的效果,普通的做法:写函数修改参数下载看结果不满意修改参数下载看结果不满意….不停的循环,直到满意为止。这样做很麻烦不说,单片机也是有寿命的啊,老这样不停的刷,很折寿的。而利用USMART,则只需要在串口调试助手里面输入函数及参数,然后直接串口发送给单片机,就执行了一次参数调整,不满意的话,你在串口调试助手修改参数在发送就可以了,直到你满意为
止。这样,修改参数十分方便,不需要编译、不需要下载、不会让单片机折寿。

主要作用,方便代码的测试和调试。

USMART怎么用?
1.添加USMAR文件到你创建的工程下面,然后添加文件夹 内容和头文件。
2.注释掉原来调用的外部函数。
3.USMART用到了定时器,在FWLIB文件中添加官方的定时器库函数文件。
4.在主函数中添加USMART的头文件,在函数初始处调用USMART的初始化函数usmart_dev.init(SystemCoreClock/1000000);
5.自己在主函数中定义的函数,除了要在usmart_config.h中添加外,还要在最前面定义一个外部声明,extern void … 。同时注意若是调用的函数记得在usmart_config.h文件中加入头文件

这个配置文件似乎与嵌入式系统或微控制器的调试和编程有关。我会为你解释每个部分和参数的含义:

  1. [BREAKPOINTS]
    • ForceImpTypeAny = 0: 这可能是关于断点类型的设置。值为0可能表示不使用特定的强制实现类型。
    • ShowInfoWin = 1: 在某些操作中可能显示信息窗口。
    • EnableFlashBP = 2: 允许在Flash存储器上设置断点。具体的值“2”可能表示某种特定的模式或状态。
    • BPDuringExecution = 0: 在执行期间不允许设置断点。
  2. [CFI]
    • CFISize = 0x00:CFI(Call Frame Information)的大小。它通常用于调试时的堆栈展开。
    • CFIAddr = 0x00: CFI的起始地址。
  3. [CPU]
    • OverrideMemMap = 0: 不覆盖默认的内存映射。
    • AllowSimulation = 1: 允许模拟模式。
    • ScriptFile="": 用于CPU的脚本文件路径,当前为空。
  4. [FLASH]
    • 与Flash存储器相关的设置。
    • CacheExcludeSize = 0x00: 不从缓存中排除的Flash区域的大小。
    • CacheExcludeAddr = 0x00: 不从缓存中排除的Flash区域的起始地址。
    • MinNumBytesFlashDL = 0: Flash下载的最小字节数。
    • SkipProgOnCRCMatch = 1: 如果CRC匹配,则跳过编程。
    • VerifyDownload = 1: 下载后验证数据。
    • AllowCaching = 1: 允许缓存。
    • EnableFlashDL = 2: 启用Flash下载。具体的值“2”可能有特定的意义。
    • Override = 0: 不覆盖Flash的默认设置。
    • Device="UNSPECIFIED": Flash设备未指定。
  5. [GENERAL]
    • WorkRAMSize = 0x00: 工作RAM的大小。
    • WorkRAMAddr = 0x00: 工作RAM的起始地址。
    • RAMUsageLimit = 0x00: RAM使用的限制。
  6. [SWO]
    • SWOLogFile="": SWO(Single Wire Output)的日志文件路径,当前为空。
  7. [MEM]
    • 关于内存读取和写入的覆盖设置。
    • RdOverrideOrMask, RdOverrideAndMask, RdOverrideAddr: 读取覆盖的或掩码、与掩码和地址。
    • WrOverrideOrMask, WrOverrideAndMask, WrOverrideAddr: 写入覆盖的或掩码、与掩码和地址。

这个配置文件可能是一个调试器或编程器的设置,用于配置如何与目标设备(如微控制器)进行交互。不同的值可能会改变工具的行为,如是否验证下载、是否缓存以及如何处理断点等。

OSC_IN和OSC_OUT默认是外部晶振引脚的。

在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法
如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:

1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。
2)对于少于100脚的产品,有2种接法:
2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。
2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。此方法可以减小功耗并(相对上面2.1)节省2个外部电阻。

VDD、VSS、VREF+、VSSA、VDDA、NRST、VBAT,我在此处做些解释,防止有些同学不明白还懒。

① VCC: 学过 51 的同学都知道 51 供电引脚是个 VCC,VCC 就是接入电路的电压。(V代表电压,C 字母代表电路)

② VDD: 器件内部的工作电压,咱们一般直接接 3.3V 了。(D 为 device器件的首字母,表示器件)

③VSS: 通常指电路公共接地端电压,所以可以看到往往咱们都把其接到GND 去了。(S为 series 表示公共连接的意思)

④VDDA: 通对比 VDD 多了个A,不用想,这肯定和模拟电路有关,所以这玩意是对所有的模拟电路部分供电。需要注意的是VDDA 和 VDD 之间的电压差不能超过 300mV,VDD 与 VDDA应该同时上电或调电,所以咱们就不自找麻烦整写花里胡哨的电路了,这两玩意直接连同一个电源就是了。

⑤VSSA:接地的玩意后面跟了个 A,毫无疑问,这是 VDDA
的地,所以我们可以理解出来,VDDA 和 VSSA是单片机内部模拟电路的正负(电源),所以啊,你要是这两玩意不接好,怕是不能使得单片机正常工作了。那为啥我右边这张图的VSSA(31
号引脚)接了一个数字地呢?不该是接到模拟地吗?那是因为我这个芯片画错了,这里 31号引脚是 VREF-,而不是 VSSA。但真的就是错的?这里画错是有一定道理的,在VREF-可用时,必须绑定到 VSSA。

⑥VREF+、VREF-:关于这个,看到 ref,大家就应该知道这玩意是个参考电压,结合stm32 的引脚具备 A/D 转换的功能这点,就能清楚这玩意是用来提高 ADC精度的。在引脚数目上了 100后,为了保证更好的低电压输入精度,连接一个单独的参考电压输入到VREF+中,VREF+输入电压范围为 2.0V 到 VDDA,VREF-可用时,必须绑定到VSSA。在引脚数为 64 时,将没有这个 VREF(实际上不是没有,而是不引出了,VREF+、VREF-在内部被接到 VDDA、VSSA 上去了)对于 NRST 和VBAT,电路如图 7 所示:

Header 在电路中一般表示插针连接器。

如果Header后直接跟数字 x ,则表示该连接器有 x 列插针;

如果Header后不仅有数字 x 还有数字 2 ,则表示该连接器为双排 x 列插针。

如果Header最后一位是字母 H ,则表示该排针为90°转角插针。

LM1117

STM32

F1

标签:函数,VDDA,Flash,笔记,学习,OSC,VREF,VSSA
From: https://www.cnblogs.com/ftyiming/p/18057738

相关文章

  • 学习进度条
     2024-03-05   所花时间(包括上课)2h   代码量(行)300   博客量(篇)1   了解到的知识点课上学习及java编程练习内容   ......
  • Android开发学习之路01
    今日跟着一个人进行了Androidstudio上创建数据库和数据表的联系,这应该是老师留的作业中,进行数据库的连接。原文链接:https://blog.csdn.net/fjh_xx/article/details/131404230一.前言二.SQLite数据库介绍1.什么是SQLite数据库2.特点3.SQLite操作API4.SQLite数据类型三.S......
  • SOME/IP 笔记
    参考链接1:https://mp.weixin.qq.com/s?__biz=MzI0NTU1NDQ3Mw==&mid=2247483718&idx=1&sn=35ec9b655c6d20b9ea14972133a2ce28&chksm=e94d8d00de3a04162fd1acf8eb1dd3300266cc5be77fb66b018a882dd7274ba5a71f1347ab41&scene=21#wechat_redirect#SOME/IP协议......
  • Java学习总结 Day2
    Java学习总结Day2构造器publicclassperson{//一个类默认会有一个方法(构造器)Stringname;intage;//实例化初始值/*1.使用new必须有构造器,本质是调用构造器*2.初始化值*3.快捷键alt+insert*/publicperson(){}//有......
  • java复习笔记 - 1
           java是一门面向对象的语言,其解决问题的方式是通过封装属性和方法为对象,通过调用对象的不同方法来达到解决问题的步骤。其本身一开始封装了不少类,可以直接使用,常见的比如String,包装类,集合类,文件类,异常类等常用的,还有一些关于数字处理的后面再说。因为最近在看数据......
  • MA-GCL论文阅读笔记
    Abstract​ 在图中生成对比视图比在图像中更具挑战性,因为我们对如何在不改变图标签的情况下显著增强图缺乏先验知识。我们认为,在GCL中,典型的数据增强技术(例如,边缘下降)不能产生足够不同的对比视图来过滤掉噪声。此外,以往的GCL方法采用了两个具有完全相同的神经结构和绑定参数的视......
  • 前端学习-vue视频学习007-标签的ref属性
    尚硅谷视频教程给标签增加ref属性,可以通过属性值取到标签内容<template><divclass="person"><h1>this</h1><h2ref="title">that</h2><button@click="showLog">changeTemp</button>......
  • Vue学习笔记36--VueComponent构造函数
    VueComponent构造函数<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>VueComponent&......
  • 技术笔记(1)QFramework
    技术笔记(1)QFramework希望实现的功能或目标:了解学习游戏开发中的架构演化过程了解学习IOC容器、DI等相关概念‍‍学习笔记:‍BindableProperty类实际上是数据+事件我理解为将模型层中的一个数据整合升级成一个类,并将修改和获取其的具体方法放在属性的get和set......
  • 技术笔记(3)扩展方法
    技术笔记(3)扩展方法希望实现的功能或目标:继续学习MMORPG游戏开发的框架了解扩展方法‍学习笔记:CanGetLayersExtension类扩展方法GetSystem:publicstaticTGetSystem<T>(thisICanGetSystemself)whereT:class,ISystem{returnStartArchitecture.I......