stm32基础介绍

(一)ARM和STM32
    1》ARM的含义:
            1,是一家公司的名字----生产内核(IP)----专利授权盈利
            2,是使用ARM内核的芯片的代称
    2》ARM内核的分类
        ARM7,ARM9,ARM11
        
        1,Cortex-A   针对计算量比较大,有交互性的界面的领域  ----手机,平板,投影,电视
        2,Cortex-R   针对实时性比较高的领域    -----汽车刹车,航空航天
        3,Cortex-M   针对微控制器领域  ----MCU
        
    3》STM32F103RCT6
        是ARM Cortex-M3内核的芯片
        ST:意法半导体公司
        M:  MCU
        32:32位,一次性处理数据的多少bit
        R:    引脚数
        C:    flash-256KB  和启动文件的选择有关系
        T:    封装,封装为TQFP
        6:    温度

        
    4》Cortex-M 系列芯片在STM32中的分类
    5》芯片里面有什么?
        1,内核---CPU
        2,外设---片上外设:外设位于芯片内部,内核外部
            
            片外外设: 外设位于芯片外部
        (芯片的控制原理:利用内核,驱动片上外设,控制片外外设)


    6》Cortex-M 内核是哈佛架构:指令存储和数据存储是分开的
                             冯若伊曼架构:指令存储和数据存储是不分开的

=========================================================================
(二)开发方式----STM32
    1》寄存器开发---(寄存器:具有特殊功能的内存单元)
    2》标准外设库开发---(目前ST公司不再维护升级)
    3》库开发:1,cube开发----STM32CubeMX
               2,LL库
               
    开发方式大比拼:
                        开发难度         可维护性      代码执行效率
    寄存器开发            最难               最难          最高
    标准外设库开发        适中               适中          适中
    cube开发              最简单           最高          最低
    LL库                  较难               较难          较高
    
=========================================================================
(三)开发环境的搭建
    keil                + Source Insight
    MDK(集成开发环境)   代码编辑器
    
    注意事项:
        1,右键以管理员身份运行
        2,路径不要有中文
        3,名字不要有空格
=========================================================================
(四)基于标准外设库新建一个工程

    stm32F10x_StdPeriph_lib_V3.5.0   (ST公司发行的stm32F10x标准外设库的最后一个版本)

    1>打开文件夹(有以下内容)
    _htmresc                (logo)(CMSIS软件接口标准)
    Libraries                 库文件(移植的重点)(以前大家在Ubuntu用c库的函数,现在我们需要用ST公司提供的库文件,所以需要移植到工程目录中)
    Project                  驱动示例代码(ST公司写的一些例子,一般需要匹配ST公司的开发板,可以作为参考,不能直接移植)
    Utilities                  开发板例子程序(这个例程完全依赖开发板,也是只能作为参考)
    Release_Notes,html        固件库发行说明(类似日志文件,版本更新文件)
    Stm32f10_StdPeriph_lib_um.chm   固件库使用说明文档(对固件库中所有函数说明,英文文档,老师提供了一个中文的文档STM32固件库使用手册_v3.5版本)


    2>移植的重点(Libraries文件夹)
    STM32F10x_StdPeriph_Driver  片上外设程序所在文件夹(加载的重点)在此文件夹下:
    Inc    片上外设的头文件 (.h)
    Src    片上外设的源文件 (.c)
    CMSIS:包含了启动文件,开发所依赖的的配置,时钟等(重要)CMSIS中的文件:
    CM3文件夹下
    CoreSupport文件夹
    Core_cm3.c:包含的是一些内核相关的函数和宏定义
    Core_cm3.h: 包含的是一些内核相关的函数和宏定义的头文件
    DeviceSupport文件夹
    ST文件夹
    STM32F10x文件夹
    Startup文件夹下
    Arm文件夹下
    Startup_stm32f10x_hd.s:(引导启动文件,容量决定)
    Stm32f10x.h:实现了所有硬件寄存器结果,地址映射,寄存器位操作,基本定义。
    System_stm32f10x.c:系统启动初始化,尤其是时钟。
    System_stm32f10x.h:系统启动初始化,尤其是时钟的头文件。

常见错误截图:

        STM32如果跑裸机的话,它是没有操作系统的,所以main函数不能结束(不能return),如果结束了,程序就终止了,那么就死机了。所以,我们用while(1);放在main程序末尾,用它来代替return。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32是由ST公司生产的一系列微控制器单片机(MCU),采用ARM的CPU架构。它包括多个系列,如STM32F10x、STM32F2xx、STM32F3xx、STM32F4xx和STM32F7xx,根据FLASH容量的不同可以分为大容量、中容量和小容量。\[1\] 学习STM32的资料包括中文参考手册、STM32F103ZET数据手册和Cortex-M3权威指南。中文参考手册主要讲解寄存器说明和各个模块的框图,STM32F103ZET数据手册则介绍了电气特性和资源信息。Cortex-M3权威指南则详细介绍了内核的结构和寄存器。此外,还可以参考ST官方网站www.stmcu.com获取更多资料。\[1\] STM32的外部管脚命名方式与51单片机不同。51单片机使用P0-P3端口名和P0.x管脚名称,而STM32使用PA-PG端口名和PA.x管脚名称。\[1\] STM32具有强大的中断支持,支持256个中断,其中包括16个内核中断和240个外部中断。但实际上,STM32并没有使用CM3内核的全部功能,而是只用了一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。在STM32F103系列上,可屏蔽中断数量为60个。\[2\] STM32芯片由两部分组成,即Cortex-M3微控制器内核和ST公司开发的片上外设。Cortex-M3微控制器内核是ARM公司推出的基于ARMv7架构的32位微控制器内核,而ST公司则在此基础上开发了STM32单片机的片上外设。\[3\] 以上是关于STM32基础知识的入门介绍。如果您有更具体的问题,我可以为您提供更详细的解答。 #### 引用[.reference_title] - *1* [STM32入门之基础知识](https://blog.csdn.net/qq_41174320/article/details/80717363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [STM32开发基础知识入门](https://blog.csdn.net/weixin_44918105/article/details/129690074)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32入门基础知识点](https://blog.csdn.net/STM89C56/article/details/105937019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值