Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
stm32 f030_stm32单片机软件,希望能够帮助你!!!。
上一次讲了开发板的设计思路。本来打算这次讲电源,考虑了下,还是讲主角吧。
开发板MCU我们选用STM32F030C8T6。这是一颗ARM Cortex-M0内核的32位CPU芯片,个人认为它远比8051适合初学者。同时ARM日盛,不学就意味着落伍。
为了节省篇幅和大家的时间,这里不抄器件手册了,简单归纳下MCU的情况。
STM32F030C8T6(后续简称F030)有64KB Flash/8KB SRAM,2个SPI、2个I2C、2个UART、39个GPIO、12通道的ADC,还有足够多的定时器。这些资源远比老掉牙的89C52要多,对于初学者来说,够用了。如果我们要做产品,首先也是要考察资源情况。一般情况下,尽量少地外扩芯片。从这个角度来说,89C52真没存在必要了!
需要注意的是,F030的正常工作电压是2.4~3.6V。因此,实际使用时,注意输入电压不能超过3.6V,否则会烧坏芯片。开发板上设计了电源稳压电路,可以将4.5~12V的输入电压,转为3.3V,供MCU使用。这部分,我在以后再讲。
F030是32位CPU,而8051属于8位CPU。差异在哪呢?
CPU的位数是指其指令字长以及一次能处理的最大整数宽度,通常内部数据总线的宽度也不低于此位数。CPU的位数越大,一个时钟周期的处理能力也越大。毫无疑问,F030一次能处理32位数的加减和逻辑位操作,而8051仅能处理8位。再考虑到取指令和处理进位等过程,同频率8位机和32位机的性能差异可能在10倍以上。如果旧型号的非1T周期的8051,那性能差距更是成倍扩大。这个概念同样适用于PC和手机的64位CPU。
我们来认识一下F030到底内部是什么样子的。很多只研究编程的朋友,并不明白MCU里面是什么样子,编代码只能是一种很抽象的思维过程。其实,如果能了解MCU内部的结构,那么编码中的很多语句,都可以想象成一个数据流动。
图中A是核心的CPU部分,包括存储、总线和高速设备。B部分是GPIO,C部分是我们常用的各种外设。我们重点关注A到B、C的过程。图中彩色的粗箭头是总线,联通了A->B和A->C,它们就像芯片里的高速公路。
A里的CPU发出一个读写指令,就像派出一个信令员,沿高速公路(总线)到达目的,如果有返回的信息(读数据),还会在通过高速公路(总线)返回到CPU中。因为CPU只有一个出口,所以CPU同时只能读写一个外设。
要学好单片机,一定要学会阅读器件手册,框图是器件手册最重要的部分之一,其余还有各电气指标、PIN-Map、外设操作手册等。这里我先浅尝辄止,这些将逐渐穿插于以后的文章里。
ARM与89C51的区别之一,就是外设大量与GPIO复用,初学者容易困惑。下图是IO的电路结构,大部分ARM单片机都差不多。初学者可能一下看不懂,问题不大。你只要知道GPIO和外设信号、模拟信号,最终汇总到引脚那就行。具体哪个起作用,要用GPIO的模式设定来完成,英文一般叫Function或Mode。通过配置GPIO的模式、输入输出、上下拉等配置,最终确定引脚功能。具体细节,这部分到后面会有专门的文章介绍。
学单片机,最好先粗略看看器件手册,主要关注电气、PIN脚、外设等。上手后,再根据具体需求,逐个研究外设模块。上面,是一个热身,以后会有很多这样的分析和研究。
下次,我将以开发板的电路,分模块讲解。最近可能以讲宏观知识点为主,等板子做好,再讲实操。敬请期待。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章