理解我们单片机拥有的资源

目录

为什么要查询单片机拥有的资源

所以,去哪些地方可以找数据手册

一个例子:STM32F103C8T6


前言

本文章隶属于项目:

Charliechen114514/BetterATK: This is a repo that helps rewrite STM32 Common Repositorieshttps://github.com/Charliechen114514/BetterATK

为什么要查询单片机拥有的资源

这个问题问的其实有点白痴——不知道使用的单片机有什么,咱们咋做项目,总不可能做到一半发现片上没有硬件IIC半路集成一个硬件IIC芯片,做到一半发现ADC不满足我们的需求再抓耳挠腮想办法改吧。总不可能做到一半发现我们实际上把显然器件买富裕太多了,成本严重溢出吧。

单片机的资源决定了它能够完成什么样的任务。在开发任何项目时,我们必须清楚地知道单片机具备哪些硬件支持,例如有多少个GPIO引脚、是否有ADC模块、是否支持PWM、是否集成定时器、串口、I2C、SPI、CAN总线等通信接口,以及有无看门狗、DMA控制器、中断控制器等系统资源。只有清楚这些,我们才能判断该单片机是否能满足项目需求。这是我们动手写项目之前必须要考虑的事情。比如说,我是做到一半发现STM32F103C8T6没有内置的FAMC芯片导致没办法满足使用硬件刷新TFTLCD的时候,只好换笔者之前的STM32F103ZET6等等。

资源的种类和数量直接影响程序的设计方案。例如,如果单片机RAM和Flash较小,就必须在程序设计中精打细算,避免过度占用内存(举个例子,一些非常固定的场景下,我们就会使用那些8位单片机,一些8位单片机可就只能写汇编了,C语言编译的程序(几百字节甚至是几K)是装不下的);如果外设资源丰富,就可以减轻主控制逻辑负担,将一些功能交给硬件模块去实现,提高整体性能。如果开发者不了解资源情况,容易导致程序无法运行或系统不稳定。

资源决定了调试和扩展的灵活性。如果我们知道单片机有几个定时器、是否支持多通道ADC、是否具备多种通信接口,就可以更灵活地分配和调度资源,甚至在项目后期需要增加新功能时,也能快速评估资源是否足够、是否需要更换芯片。换而言之,我们反方向的考虑——我们制作的产品好不好迭代?能不能使用一个稳定的芯片就把潜在的功能更新给包了。当然这就考验我们的能力——正确的评估使用的芯片,让我们的项目可以长期发展。

所以,去哪些地方可以找数据手册

单片机的资源,归根结底最好不要跑去问百度,谷歌也不要太多。我们需要去找单片机的数据手册,单片机的数据手册就把我们的片上的资源说干净了——如Flash容量、RAM大小、引脚功能、通信接口、外设模块数量等对片上的资源如何使用,需要参考的是参考手册,这种手册一般说的是每个模块的工作原理和使用方法——ADC转换过程、定时器寄存器结构、中断配置方式等

当然,大部分朋友如果是初学,可能就会购买开发板,核心板(比如说我现在就是买核心板,笔者不做焊工,只是感兴趣玩玩),我们可能会随手要到我们板子的原理图电路图,这些就是展示一种资源的使用方法——单片机的哪些引脚可以接到哪些外设上。举个例子,笔者的STM32F1系列和F4系列上的PA9和PA10因为具备复用UART串口通信的功能,所以几乎总是直接跟附带的UART串口模块的RX和TX相接。

当然,一些小众的单片机这个事情就要麻烦了,我们可能就要摇客服求给资料,自己探索类比,看别人的博客摸索方案。这个笔者水平没到,只是听有朋友大致如此。

最富裕的仗——比如说笔者学习的意法半导体的STM32系列,都有集成开发环境(IDE)提供的工具,甚至可以做图形化的开发,开发板上有啥资源甚至可以看图看出来!

一个例子:STM32F103C8T6

STM32F103C8T6,我相信看江科大视频的朋友都是从这个单片机入门的。这个单片机我们想要深入学习,第一件事情就是找到这个单片机的资源手册和编程手册。

你当然可以去意法半导体的官网上直接下一手资料:

数据手册:

Datasheet - STM32F103x8 STM32F103xB - Medium-density performance line Arm®-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 com. interfaceshttps://www.st.com/resource/en/datasheet/cd00161566.pdf

编程手册:

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced Arm®-based 32-bit MCUs - Reference manualhttps://www.st.com/resource/en/reference_manual/rm0008-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf

笔者的朋友(HNHKHNH-CSDN博客)推介过一个AllDatasheet的网站,这里是笔者玩芯片外设的一个Fallback。你可以去上面搜索:ALLDATASHEET.COM - Electronic Parts Datasheet SearchDatasheet search site for Electronic Components and Semiconductors, integrated circuits, diodes, triacs and other semiconductors.https://www.alldatasheet.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35552.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始 | C语言基础刷题DAY3

❤个人主页&#xff1a;折枝寄北的博客 目录 1.打印3的倍数的数2.从大到小输出3. 打印素数4.打印闰年5.最大公约数 1.打印3的倍数的数 题目&#xff1a; 写一个代码打印1-100之间所有3的倍数的数字 代码&#xff1a; int main(){int i 0;for (i 1; i < 100; i){if (i % …

Blender材质 - 层权重

层权重 混合着色器 可以让 面朝向的一面显示一种材质 另一面显示另一种材质 就能实现挺不错的材质效果 移动视角 材质会跟着变化 有点类似虚幻的视差节点BumpOffset

3个 Vue $set 的应用场景

大家好&#xff0c;我是大澈&#xff01;一个喜欢结交朋友、喜欢编程技术和科技前沿的老程序员&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff0c;关注我&#xff0c;科技未来或许我能帮到你&#xff01; 在 Vue2 中&#xff0c;由于 Object.defineProperty 的限制&#…

Flutter_学习记录_ ImagePicker拍照、录制视频、相册选择照片和视频、上传文件

插件地址&#xff1a;https://pub.dev/packages/image_picker 添加插件 添加配置 android无需配置开箱即用&#xff0c;ios还需要配置info.plist <key>NSPhotoLibraryUsageDescription</key> <string>应用需要访问相册读取文件</string> <key>N…

LeetCode 解题思路 19(Hot 100)

解题思路&#xff08;递归&#xff09;&#xff1a; 终止条件&#xff1a; 若节点为空&#xff0c;返回深度0。递归步骤&#xff1a; 分别计算左子树和右子树的最大深度&#xff0c;取较大者并加1&#xff08;当前节点&#xff09;。 Java代码&#xff1a; class Solution {…

如何启用 HTTPS 并配置免费的 SSL 证书

引言 HTTPS 已成为现代网站安全性的基础要求。通过 SSL/TLS 证书对数据进行加密&#xff0c;不仅可以保护用户隐私&#xff0c;还能提升搜索引擎排名并增强用户信任。本指南将详细介绍如何通过 Lets Encrypt&#xff08;免费、自动化的证书颁发机构&#xff09;为您的网站启用…

element-plus中Popconfirm气泡确认框组件的使用

1、基本使用 从element-plus官网复制代码&#xff1a; <template><el-popconfirm title"Are you sure to delete this?"><template #reference><el-button>Delete</el-button></template></el-popconfirm> </template…

软件需求分类、需求获取(高软46)

系列文章目录 软件需求分类&#xff0c;需求获取 文章目录 系列文章目录前言一、软件需求二、获取需求三、真题总结 前言 本节讲明软件需求分类、需求获取的相关知识。 一、软件需求 二、获取需求 三、真题 总结 就是高软笔记&#xff0c;大佬请略过&#xff01;

10、基于osg引擎生成热力图高度图实现3D热力图可视化、3D热力图实时更新(带过渡效果)

1、结果 2、完整C代码 #include <sstream> #include <iomanip> #include <iostream> #include <vector> #include <random> #include <cmath> #include <functional> #include <osgViewer/viewer> #include <osgDB/Read…

鸿蒙应用程序包HAP的开发与使用

1、HAP是什么&#xff1f; HAP&#xff08;Harmony Ability Package&#xff09;是应用安装和运行的基本单元。HAP包是由代码、资源、第三方库、配置文件等打包生成的模块包&#xff0c;其主要分为两种类型&#xff1a;entry和feature。 entry&#xff1a;应用的主模块&#x…

【Mac】安装 Parallels Desktop、Windows、Rocky Linux

一、安装PD 理论上&#xff0c;PD只支持试用15天&#xff01;当然&#xff0c;你懂的。 第一步&#xff0c;在 Parallels Desktop for Mac 官网 下载 Install Parallels Desktop.dmg第二步&#xff0c;双击 Install Parallels Desktop.dmg 第三步&#xff0c;双击安装Paralle…

matlab 自适应模糊PID在反应釜温度控制中的应用

1、内容简介 matlab163-自适应模糊PID在反应釜温度控制中的应用 可以交流、咨询、答疑 2、内容说明 略摘要:针对工业过程控制具有时变、滞后、非线性等特点,在传统 PID 控制中融入模糊控制的功能,形成了新的参数自 适应模糊 PID 控制器,并把它应用在化工制药中常用的反应釜温度…

基于FPGA的3U机箱温度采集板PT100,应用于轨道交通/电力储能等

板卡简介&#xff1a; 本板为温度采集板&#xff08;PT100&#xff09;&#xff0c;对目标进行测温&#xff0c;然后将温度转换成处理器可识别的电流信号。 性能规格&#xff1a; 电源&#xff1a;DC5V&#xff0c;DC15V 4线制PT100&#xff1a;7路&#xff08;标称测温范围…

管家婆实用贴-如何设置打印机共享

很多商家在使用管家婆软件经营日常业务时会有多个操作员多台电脑需要打印&#xff0c;但是不想每台电脑配置一台打印机&#xff0c;一台电脑专门用来打印又浪费设备。遇到这种情况时可以将插线电脑上的打印机共享给其他的电脑一起使用&#xff0c;方便又高效。今天来和小编一起…

Qt QML实现视频帧提取

## 前言 视频帧率&#xff08;Frame Rate&#xff09;是指视频播放时每秒显示的画面帧数&#xff0c;通常用fps&#xff08;Frames Per Second&#xff09;来表示。视频是由一系列静止的图像帧组成的&#xff0c;而视频帧率则决定了这些图像帧在单位时间内播放的速度。较高的视…

LabVIEW压比调节器动态试验台

本案介绍了一种基于LabVIEW的压比调节器动态试验台的设计&#xff0c;通过实用的LabVIEW图形化编程语言&#xff0c;优化了数据采集与处理的整个流程。案例通过实际应用展示了设计的专业性与高效性&#xff0c;以及如何通过系统化的方法实现精确的动态测试和结果分析。 ​ 项目…

3.17学习总结 java数组

地址值&#xff1a; D&#xff1a;表示当前数组内元素元素是double类型的 索引>下标&#xff0c;从0开始 最大索引&#xff1a;数组长度-1 把数据存储到数组中&#xff0c;一旦覆盖之后&#xff0c;原来的数据就不存在了 数组的遍历&#xff1a; 遍历&#xff1a;是取…

Linux-数据结构-线性表-单链表

一.链表的概念 【1】线性表的链式存储 解决顺序存储的缺点&#xff0c;插入和删除&#xff0c;动态存储问题。 【2】特点&#xff1a; 线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素&#xff0c;存储单元可以是连续的&#xff0c;也可以不连续。可以被存…

Apifox Helper 自动生成API接口文档

在我们开发过程中我们在编写请求地址和编写请求参数的时候特别花费时间耗费了我们很多时间&#xff0c;作为一个程序员&#xff0c;更应该把精力时间集中在开发上&#xff0c; Apifox Helper 是 Apifox 团队针对 IntelliJ IDEA 环境所推出的插件&#xff0c;可以在 IDEA 环境中…

【软考-架构】13.1、软件架构概述-构件技术

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 ✨【重点】系统架构设计软件架构概述软件架构设计与生命周期构件&#x1f31f;软件架构风格数据流风格调用/返回风格独立构件风格虚拟机风格仓库风格闭环控制风格C2体系结…