C/C++ stm32基础知识超详细讲解(系统性学习day14)

2024-02-27 1501阅读

温馨提示:这篇文章已超过398天没有更新,请注意相关的内容是否还可用!

目录

前言

一、ARM和STM32是什么?

二、STM32的开发方式

三、GPIO----寄存器开发方式

1.八种输入输出模式分析

2.寄存器 

四、stm32芯片图片

五、怎么学好stm32 

总结


前言

stm32的广泛含义及背景:

STM32是一款由意法半导体(ST)公司开发的32位微控制器,其全称是意法半导体32位系列微控制器芯片。STM32是基于Cortex-M内核的32位单片机,分为多个系列以满足不同应用场景的需求。

STM32微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机,其诞生于20世纪70年代中期,经过多年的发展,其成本越来越低,性能越来越强大,应用已经无处不在,遍及各个领域。

STM32系列是ST公司专为要求高性能、低成本、低功耗的嵌入式应用设计的ARMCortex-M3内核的32位单片机。STM32有很多系列,从内核上分有Cortex-M0、M3、M4和M7等几种,每个内核又大概分为主流、高性能和低功耗等不同类型。其中STM32F系列有多个子系列,如STM32F103“增强型”系列、STM32F101“基本型”系列、STM32F105和STM32F107“互联型”系列等。


一、ARM和STM32是什么?

(1)什么ARM?

        1,ARM是一家公司名字------专门做IP核------依靠专利授权盈利

        2,ARM是一系列基于ARM内核设计的芯片的代称

(2)ARM内核的分类?

        ARM7,ARM9,ARM11

        Cortex-A      主要应用于计算量比较大,有交互性界面的领域  ------电视机,手机,平板,投影仪,车载中控

        Cortex-R      主要应用实时性要求比较高的领域-----航空航天,汽车刹车

        Cortex-M      主要用于微控制器(MCU)领域 

 (3)什么STM32?

        单片机

        它是ARM Cortex-M3的芯片

        我们学习的芯片全称:

            STM32F103RCT6

            STM32F407ZET6

          

(4)STM32F103RCT6的含义

        ST:意法半导体公司

        M:MCU

        32:32bit的CPU一次性处理数据的多少

        F103:编号

        R:引脚数量 pin  64pin

        C:flash的大小----256KB  注意:flash的大小和启动文件的选择有关系

        T:封装

        6:温度等级

二、STM32的开发方式

        常用的为以下四种开发方式:

      (1) 寄存器开发:寄存器----具有特殊功能的内存单元------寄存器开发是所有可编程逻辑芯 片所支持的一种开发方式

       (2)标准外设库开发:ST公司不再维护这种开发方式

       (3)Cube库开发:STM32CubeMX图形化界面的软件-----目前这种开发方式有两个缺点:   一,只支持ST公司的芯片,二代码冗余特别多

       (4)LL库开发:不成熟

开发方式大比拼:
开发方式开发难度可维护性代码可执行效率
寄存器开发最难最低 最高
标准外设库开发适中适中适中
Cube库开发最简单最高最低
LL库开发较难较低较高

芯片里面有什么?

(1)内核  ----CPU

(2)片上外设:外设位于芯片的内部,内核的外部

        (片外外设:外设位于芯片的外部)

        单片机的开发实质:和内核沟通,利用片上外设驱动片外外设

        

        补充:

            Cortex-M3的内核是哈弗架构:数据和指令是分开存储的

                             冯若依曼架构:数据和指令是不分开的

三、GPIO----寄存器开发方式

1.八种输入输出模式分析

         组件的作用:

         施密特触发器----纠正电平

        上拉电阻:一个电阻,一端接到电源正极,一端接到信号线,这个电阻称为这根信号线上的上拉电阻-----如果信号线没有其他输入,上拉电阻无压降

        下拉电阻:一个电阻,一端接到电源负,一端接到信号线,这个电阻称为这根信号线上的下拉电阻

        八种输入输出模式:

        (1)输入浮空:  没有上拉电阻,没有下拉电阻

                    输入0:  输入数据寄存器中的值为0

                    输入1:  输入数据寄存器中的值为1

                    没有输入时: 输入数据寄存器中的值为上一次状态或者是复位值

        (2)输入上拉:  有上拉电阻,没有下拉电阻

                    输入0:  输入数据寄存器中的值为0

                    输入1:  输入数据寄存器中的值为1

                    没有输入时: 输入数据寄存器中的值为1

        (3)输入下拉:  没有上拉电阻,有下拉电阻

                    输入0:  输入数据寄存器中的值为0

                    输入1:  输入数据寄存器中的值为1

                    没有输入时: 输入数据寄存器中的值为0    

       (4)模拟输入:(是专门为ADC这个片上外设准备的模式)    ,不经过施密特触发器,没有上拉电阻,也没有下拉电阻

                    电压从芯片的引脚进来后直接输入到ADC片上外设,由ADC片上外设处理

                    ADC的作用:用于读取电压值;当需要读不是0v或3.3v之外的电压值时使用

                    

        (5)推挽输出: 输出数据寄存器写0: 对应引脚输出低电平0V            

                   输出数据寄存器写1: 对应引脚输出高电平3.3V

                   

        (6)开漏输出:不能输出高电平

                   输出数据寄存器写0: 对应引脚输出低电平0V            

                   输出数据寄存器写1: 对应引脚输出高阻

                   

        复用:引脚受片上外设控制

        通用:引脚受CM3控制的输出数据寄存器控制

        

        (7)复用推挽输出: 片上外设的输出数据寄存器写0: 对应引脚输出低电平0V            

                       片上外设的输出数据寄存器写1: 对应引脚输出高电平3.3V

                   

        (8)复用开漏输出:不能输出高电平

                   片上外设的输出数据寄存器写0: 对应引脚输出低电平0V            

                   片上外设的输出数据寄存器写1: 对应引脚输出高阻    

2.寄存器 

(1)

       最大速度:电平翻转的速度

        f(频率)=1/T(周期)

        f(单位是HZ)

        T(单位是s)

(2)

       将寄存器reg的第n位清零:  reg  &=~(1

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]