目录
前言
本文章隶属于项目:
为什么要查询单片机拥有的资源
这个问题问的其实有点白痴------不知道使用的单片机有什么,咱们咋做项目,总不可能做到一半发现片上没有硬件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,我相信看江科大视频的朋友都是从这个单片机入门的。这个单片机我们想要深入学习,第一件事情就是找到这个单片机的资源手册和编程手册。
你当然可以去意法半导体的官网上直接下一手资料:
数据手册:
编程手册:
笔者的朋友(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/