大家好,今天我跟大家分享一下学习STM32的一些收获,希望对初学STM32的同学有所启示。当然,本人也是一名初学者,如果有谈论不妥之处,还望您能够批评指正,不吝赐教,本人将非常感激。如果有什么问题,欢迎您到http://www.openedv.com/进行提问与讨论。最后祝您学业有成,工作顺利。
一、什么是STM32?
意法半导体(ST)集团于1988年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司,是世界最大的半导体公司之一。 STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex®-M0,M0+,M3, M4和M7内核(ST’s product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform)。
它具有以下三个特点:
•新的基于ARM内核的32位MCU系列
–标准的ARM架构 –内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Cortex-M内核
•超前的体系结构
–高性能 –低电压 –低功耗 –创新的内核以及外设
•简单易用/自由/低风险
Cortex-M3系列属于ARMv7架构
ARMv7架构定义了三大分工明确的系列:
- “A”系列:面向尖端的基于虚拟内存的操作系统和用户应用
- “R”系列:针对实时系统;
- “M”系列:对微控制器。
STM32F1属于Cortex-M系列中的Cortex-M3内核,采用ARMv7-M架构。STM32F4属于Cortex-M4系列采用ARMv7-ME架构。Cortex-A5/A8采用ARMv7-A架构。传统的ARM7系列采用的是ARMv4T架构。(想了解更多可参考韦东山老师的《Linux应用开发完全手册》第一章)
那么STM32与ARM有什么区别呢?
Cortex-M家族
STM32的命名规则
STM32的应用场景
STM32的应用场景还有很多,这里只是简单地列出一些。
总的来说STM32具有如下优势:
1)极高的性能:主流的Cortex内核。
2)丰富合理的外设,合理的功耗,合理的价格。
3)强大的软件支持:丰富的软件包。
4)全面丰富的技术文档。
5)芯片型号种类多,覆盖面广。
6)强大的用户基础:最先成功试水CM3芯片的公司,积累了大批的用户群体,为其领先做铺垫。
二、按内核架构分为不同产品
主流产品(STM32F0、STM32F1、STM32F3)
超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)
高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)
三、STM32F103板载资源(以正点原子MiniSTM32F103RCT6为例)
1.ALIENTEK MiniSTM32 V3.0开发板板载资源如下:
◆CPU:STM32F103RCT6,LQFP64,FLASH:256K,SRAM:48K;
◆1个标准的JTAG/SWD调试下载口
◆1个电源指示灯(蓝色)
◆2个状态指示灯(DS0:红色,DS1:绿色)
◆1个红外接收头,配备一款小巧的红外遥控器
◆1个IIC接口的EEPROM芯片,24C02,容量256字节
◆1个SPI FLASH芯片,W25Q64,容量为8M字节(即64M bit)
◆1个DS18B20/DS1820温度传感器预留接口
◆1个标准的2.4/2.8/3.5/4.3/7寸LCD接口,支持触摸屏
◆1个OLED模块接口(与LCD接口部分共用)
◆1个USB串口接口,可用于程序下载和代码调试
◆1个USB SLAVE接口,用于USB通信
◆1个SD卡接口
◆1个PS/2接口,可外接鼠标、键盘
◆1组5V电源供应/接入口
◆1组3.3V电源供应/接入口
◆1个启动模式选择配置接口
◆1个2.4G无线通信接口
◆1个RTC后备电池座,并带电池
◆1个复位按钮,可用于复位MCU和LCD
◆3个功能按钮,其中WK_UP兼具唤醒功能
◆1个电源开关,控制整个板的电源
◆3.3V与5V电源TVS保护,有效防止烧坏芯片。
◆独创的一键下载功能
◆除晶振占用的IO口外,其余所有IO口全部引出
2.芯片资源
芯片内部资源描述(STM32F103ZET6&STM32F103RCT6)
内核:
-32位 高性能ARMCortex-M3处理器
-时钟:高达72M,实际还可以超屏一点点
-单周期乘法和硬件除法
IO口:
–STM32F103ZET6: 144引脚 112个IO
–STM32F103RCT6: 64引脚 51个IO
-大部分IO口都耐5V(模拟通道除外) -支持调试:SWD和JTAG,SWD只要2根数据线
存储器容量:
–STM32F103ZET6: 512K FLASH,64K SRAM
–STM32F103RCT6: 256K FLASH,48K SRAM
定时器:多达11个定时器
-4个通用定时器 -2个基本定时器 -2个高级定时器
-1个系统定时器 -2个看门狗定时器
通信接口:多达13个通信接口
-2个I2C接口 -5个串口 -3个SPI接口 -1个CAN2.0 -1个USBFS -1个SDIO
时钟,复位和电源管理:
①2.0~3.6V电源和IO电压
②上电复位,掉电复位和可编程的电压监控
③强大的时钟系统
-4~16M的外部高速晶振 -内部8MHz的高速RC振荡器
-内部40KHz低速RC振荡器,看门狗时钟
-内部锁相环(PLL,倍频),一般系统时钟都是外部或者内部高速时钟经过PLL倍频后得到
-外部低速32.768K的晶振,主要做RTC时钟源
3、STM32F103xC、STM32F103xD和STM32F103xE器件功能和配置
4.关于一些常见外设挂载在哪些总线之下?(APB1与APB2)
APB2下的外设:
APB1下的外设:
- DCA
- 电源控制接口
- 后备寄存器
- CAN
- USB
- 这里大家只要记住TIM1 和 TIM8、GPIO、ADC、SPI等是高速外设,所以挂载在APB2总线之下(APB2、APB1,2>1,所以APB2为高速时钟总线),TIM2~TIM7 挂载在APB1总线之下,就够了。
- 其他常见的记不住的话,用到了去查《stm32中文参考手册》第28页29页就可以了。
四、STM32学习方法
1、推荐学习网站:
①www.openedv.com 开源电子网,正点原子官方技术支持论坛。正点原子资料发布和售后官方平台。
②www.stmcu.org ST中国官方技术网站,ST官方文档发布网站。
2、需要掌握哪些技能
C语言是嵌入式开发的基础中的基础。
本次就简单分享这些了,下次为大家详细展示MiniSTM32F103RCT6的各项资源。谢谢您的浏览。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35251.html