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

这篇具有很好参考价值的文章主要介绍了C/C++ stm32基础知识超详细讲解(系统性学习day14)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、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<<n);
       将寄存器reg的第n位置1:   reg  |=(1<<n);    
        判断寄存器reg的第n位为0还是为1
        if(reg&(1<<n)){
            reg的第n位为1;
        }else{
            reg的第n位为0;
        }

(3)

        如果点亮红色的灯
        1,配置GPIOC的CRH寄存器的第3---0位配置成0010
        2,配置GPIOC的ODR寄存器的第8位配置成0

四、stm32芯片图片

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

五、怎么学好stm32 

学好STM32需要掌握以下基本技能和步骤:

  1. 熟练掌握C语言:STM32开发的核心语言是C语言,因此熟练掌握C语言是学好STM32开发的基础。
  2. 学习并掌握一种开发环境:常见的STM32开发环境有Keil、IAR等,选择适合自己的开发环境,并熟练掌握其使用方法。
  3. 学习并掌握一种调试工具:常用的调试工具包括JTAG、SWD等,熟练掌握这些调试工具的使用方法,可以帮助你更好地调试代码。
  4. 学习库函数和寄存器:STM32的库函数和寄存器是实现其功能的关键,因此需要深入学习并理解库函数和寄存器的使用方法。
  5. 学习基本外设和高级功能:STM32有许多基本外设和高级功能,如GPIO、定时器、串口、SPI、IIC、WDG、FSMC、ADC/DAC等,需要了解并掌握这些外设和功能的基本原理和使用方法。
  6. 系统学习:可以通过购买开发板、开发板配套视频教程、开发板配套源码和芯片官方手册进行系统学习。同时,要善于利用网络资源,如论坛、博客等,进行学习交流。
  7. 多实践、多动手:学习STM32开发不能只停留在理论层面,需要多动手实践,编写代码、调试程序,从实践中学习和积累经验。
  8. 注重学习方法:学习STM32开发需要注重学习方法,例如如何查找资料、如何提问、如何解决问题等。要学会独立思考和解决问题,避免过度依赖他人。

总之,学好STM32需要付出努力和时间,需要掌握基本技能和知识,同时注重实践和学习方法,不断提高自己的编程和调试能力。


总结

关于C/C++ stm32基础知识的超详细讲解,懒大王就先分享到这里了,如果你认为这篇文章对你有帮助,请给懒大王点个赞点个关注吧,如果发现什么问题,欢迎评论区留言!!💕💕 💕 文章来源地址https://www.toymoban.com/news/detail-756505.html

到了这里,关于C/C++ stm32基础知识超详细讲解(系统性学习day14)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • STM32基础知识(三)-- 系统时钟RCC详解

    STM32基础知识(三)-- 系统时钟RCC详解

    本文主要探讨STM32中比较重要的一个基础知识,RCC系统时钟,系统时钟也就是CPU的脉搏,决定CPU的速率,被誉为芯片的心跳,之后再文章中将会结合《STM32F10X-中文参考手册》进行介绍时钟树以及相关知识。 参考手册获取方式在上一篇博客中介绍 (1)RCC – 复位和时钟控制器

    2024年02月11日
    浏览(14)
  • 【明解STM32】中断系统理论基础知识篇之中断基本原理及NVIC

    【明解STM32】中断系统理论基础知识篇之中断基本原理及NVIC

    目录 一、前言 二、基本原理概述 1、中断的作用 2、中断和异常 3、NVIC中断控制器 4、中断的分类 三、中断管理机制 1、中断向量 2、中断优先级 3、中断嵌套 四、中断处理流程 五、总结         中断是什么?举个例子来说,当我们正在工作时,突然电话响了,这时你会把

    2024年02月05日
    浏览(10)
  • 【明解STM32】中断系统理论基础知识篇之中断寄存器功能原理

    【明解STM32】中断系统理论基础知识篇之中断寄存器功能原理

    目录 一、前言 二、寄存器概述 三、NVIC寄存器组 四、SCB寄存器组 五、中断屏蔽寄存器组 六、总结         在之前的STM32的中断系统理论基础知识之基本原理及NVIC中,分别中断的基本原理,中断的管理机制和中断的处理流程进行了较为详细的论述,读者通过全篇的阅读了

    2024年02月16日
    浏览(9)
  • STM32-02-STM32基础知识

    STM32-02-STM32基础知识

    STM32F103 STM32F103是ST公司基于ARM授权Cortex M3内核而设计的一款芯片,而 Cortex M内核 使用的是 ARM v7-M架构 ,是为了替代老旧的单片机而量身定做的一个内核,具有低成本、低功耗、实时性好、中断响应快、处理效率高等特点。 架构 、 内核 、 芯片 的关系: 架构 : (ARMv7-M)

    2024年02月03日
    浏览(13)
  • 【正点原子STM32】STM32基础知识(F1F4F7H7 STM32系统框架、寻址范围、存储器映射的存储器功能划分、寄存器映射)

    【正点原子STM32】STM32基础知识(F1F4F7H7 STM32系统框架、寻址范围、存储器映射的存储器功能划分、寄存器映射)

    一、STM32系统框架 1.1、Cortex M内核 芯片 1.2、F1系统架构 1.3、F4系统架构 1.4、F7系统架构 1.5、H7系统架构 二、STM32的寻址范围? 三、存储器映射 存储器功能划分(F1为例) STM32F1存储器映射图 四、寄存器映射 寄存器基础知识 STM32寄存器分类 寄存器映射(F1为例) 寄存器描述解

    2024年02月21日
    浏览(9)
  • 【STM32】基础知识 第二课 初识 STM32

    【STM32】基础知识 第二课 初识 STM32

    ARM 公司: 只做内核设计和 IP 授权, 不参与芯片设计. 对比项 Cortex-A (Application) Cortex-R (Real-time) Cortex-M (Microcontroller) 特点 高时钟频率, 长流水线, 高性能 较高时钟频率, 较长的流水线, 实时性强 时钟频率较低, 通常较短的流水线, 超低功耗 应用场景 移动计算, 智能手机, 平板电脑

    2024年02月02日
    浏览(24)
  • 【STM32】基础知识 第五课 C 语言基础知识

    【STM32】基础知识 第五课 C 语言基础知识

    stdint.h 是从 C99 中引进的一个标准 C 库的文件. 路径: “D:MDK5.34ARMARMCCinclude” 运算符 含义 运算符 含义 按位与 ~ 按位取反 | 按位或 左移 ^ 按位异或 右移 按位与: num1 运算符 num2 结果 0 0 0 1 0 0 0 1 0 1 1 1 按位或: num1 运算符 num2 结果 0 | 0 0 1 | 0 1 0 | 1 1 1 | 1 1 按位异或: num1 运算符

    2024年02月13日
    浏览(37)
  • stm32中断的基础知识

    stm32中断的基础知识

    某些事件可能需要CPU暂停目前的程序优先处理 实现CPU暂停当前的程序并优先处理某一事件的机制称作中断 处理这一事件的程序叫做中断服务程序(Interrupt Handler) 中断的硬件实现 内部或外部信号产生中断 —程序跳转到某一特定地址(中断向量) —程序从中断向量跳转到对

    2023年04月24日
    浏览(10)
  • STM32 串口基础知识学习

    STM32 串口基础知识学习

    串行通信:数据逐位按顺序依次传输。 并行通信:数据各位通过多条线同时传输。 对比 传输速率:串行通信较低,并行通信较高。 抗干扰能力:串行通信较强,并行通信较弱。 通信距离:串行通信较长,并行通信较短。 IO资源占用:串行通信较少,并行通信较多。 成本:

    2024年02月15日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包