0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F103系列开发_点亮LED灯

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-05-26 10:03 次阅读

1. 前言

STM32目前市面上使用比较广泛,资料多,接下来就介绍如何快速入门STM32,进行基础开发。

这篇文章是STM32F103系列文章的第一篇,主要介绍开发环境的搭建、编程思路、如何查看原理图、配置时钟,配置GPIO口模式等等。

下面文字是来至STM32中文手册,对STM32系列做了详细的介绍:

STM32是一个微控制器产品系列的总称,目前这个系列中已经包含了多个子系列,分别是: STM32小容 量产品、 STM32中容量产品、 STM32大容量产品和STM32互联型产品;按照功能上的划分,又可分为 STM32F101xx、 STM32F102xx和STM32F103xx系列;

● 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、 STM32F102xx和 STM32F103xx微控制器。 ● 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、 STM32F102xx 和STM32F103xx微控制器。 ● 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx 微控制器。 ● 互联型产品是STM32F105xx和STM32F107xx微控制器。

整体来说,STM32F10x系列里所有型号芯片大多数功能模块都是相同,主要是区别还是:引脚数量不一样,FLASH闪存、RAM空间大小不一样,还有就是功能模块的数量不一样。 配置高的芯片,引脚多,功能模块多。

配置低的型号,引脚自然就少,功能模块就少。 但是只要有这个功能模块,所有型号的代码都是一样的编写方式。所以,STM32F10x系列里所有型号代码都是通用的

目前STM32开发方式主要由3种:寄存器、标准库、HAL 库。 其中HAL 库是目前意法半导体主推的开发方式,有 STM32CubeMx软件加持,可以一键生成keil工程,图形化编程非常方便,资源网上也有很多。

当前这个系列文章的STM32开发主要是选择寄存器方式开发,寄存器开发优点是: 代码较少、整体比较精简,运行效率较高。但是学习成本、入门成本、调试难度比HAL 库要难一些,因为使用寄存器开发,需要不断的看芯片手册,了解寄存器每个位的详细功能,需要对芯片寄存器非常熟悉。但是寄存器开发相对比较通用,所有的芯片都支持寄存器开发,了解寄存器开发之后,对优化库函数、HAL库的效率、对其他芯片编程、入门Linux驱动开发、了解硬件等都有一定的帮助。

2. 开发前准备

入门STM32开发,首先需要准备一块开发板,拿到开发板的原理图、下载STM32的中文参考手册,下载一个串口下载软件、准备一台windows电脑安装keil5软件。

开发板淘宝很多,推荐买:搭载STM32F103ZET6芯片的板子,可以买系统板也可以买开发板,系统板的板载资源少,引脚都引出来的,可以自己买模块扩展;开发板板载资源较多,引脚基本也是引出来的,板子的价格比较贵,购买可以参考正点原子、野火等一些厂家的板子。 一般购买板子之后,都有配套的资料包:原理图、手册都有了。

STM32支持st-link、jlink、串口等多种下载方式,其中成本比较低的就是串口下载,不需要购买额外的硬件,生成hex文件之后,通过串口下载到开发板运行,如果hex文件较大,下载速度比较慢。如果资金允许,购买st-link、jlink下载更加快,调试更加方便。

keil软件最新版可以在这里下载:http://www.myir-tech.com/download.asp?nclassid=108&anclassid=71

image-20220211100907094

下载后,根据提示,一直点击next即可。软件安装在英文目录下,防止出现一些不必要的麻烦。

3. 点亮LED

准备工作就绪之后,下面就入门STM32,点亮LED灯。

拿到开发板先看一下LED原理图,找到LED的硬件接线位置。

image-20220211101603486

关于keil软件如何新建STM32工程的文章之前是写过的,详细步骤看这里: https://blog.csdn.net/xiaolong1126626497/article/details/119879328

点亮LED灯,需要控制STM32的GPIO口输出指定的电平,STM32GPIO口编程步骤分为:

开时钟

配置GPIO口模式

控制GPIO口输出

中文参考手册里的第6章和第8章分别介绍了时钟寄存器和GPIO口配置寄存器,主要看这两章节即可。

image-20220211102155405image-20220211102348433

GPIO口模式配置寄存器有两个:CRL和CRH,一个IO口由4个二进制位表示,STM32是32位的MCU,一个寄存器是32位,GPIO口分为GPIOA,GPIOB,GPIOC等很多组,每一组的GPIO口的数量是16个。所以要配置一组GPIO口的模式需要64个二进制位,所以就分成了两个寄存器来表示。 CRL配置0~7的GPIO口,CRH就配置8~15的IO口。

如果GPIO口作为普通的输出,一般配置位置推挽输出,如果作为按键这种输入检测硬件,一般配置为上下拉输入。如果需要使用GPIO口内置的功能输出,就配置为复用功能推挽输出。

配置LED灯对应的GPIO口示例代码:

/*
函数功能: LED初始化
硬件连接: PB6 PB7 PB8 PB9
特性: 低电平点亮
*/
void LED_Init(void)
{
    //开时钟
    RCC->APB2ENR|=1<<3;
    //配置GPIO口
    GPIOB->CRL&=0x00FFFFFF;
    GPIOB->CRL|=0x22000000;
    GPIOB->CRH&=0xFFFFFF00;
    GPIOB->CRH|=0x00000022;
    //上拉
    GPIOB->ODR|=1<<6;
    GPIOB->ODR|=1<<7;
    GPIOB->ODR|=1<<8;
    GPIOB->ODR|=1<<9;
}
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7269

    浏览量

    149501
  • led灯
    +关注

    关注

    22

    文章

    1571

    浏览量

    107298
  • STM32
    +关注

    关注

    2253

    文章

    10779

    浏览量

    351618
  • STM32F103
    +关注

    关注

    33

    文章

    475

    浏览量

    63066
收藏 人收藏

    评论

    相关推荐

    如何利用STM32F103点亮一个LED

    基于STM32F103点亮一个LED1、实验目的2、实验要求3、proteus仿真图4、程序代码1、实验目的1、掌握使用KEIL MDK5进行软件
    发表于 12-16 08:28

    基于STM32F103 RET6芯片点亮LED

    博客内容基于STM32F103 RET6芯片,点亮PC3引脚LED,程序主要参考B站:STM32F103
    发表于 12-16 06:10

    如何使用STM32F103系列芯片以寄存器的方式点亮LED流水灯

    STM32的IO口可以由软件配置成哪几种模式呢?如何使用STM32F103系列芯片以寄存器的方式点亮LED流水灯?
    发表于 02-11 08:12

    stm32f103系列引脚定义-功能图

    本文介绍stm32f103系列芯片引脚功能定义如STM32F103C8T6,STM32F103RCT6等引脚图各个管脚的功能与使用。
    发表于 08-03 17:03 25.6w次阅读
    <b class='flag-5'>stm32f103</b><b class='flag-5'>系列</b>引脚定义-功能图

    盘古STM32F103开发板移植uCGUI教程

    盘古STM32F103开发板移植uCGUI教程
    发表于 09-29 09:21 21次下载
    盘古<b class='flag-5'>STM32F103</b><b class='flag-5'>开发</b>板移植uCGUI教程

    STM32F103使用总结

    STM32F103使用总结
    发表于 10-24 10:22 152次下载

    stm32f103移植

    stm32f103移植
    发表于 10-27 09:03 43次下载
    <b class='flag-5'>stm32f103</b>移植

    STM32F103设计开发原理图.pdf

    STM32F103设计开发原理图
    发表于 05-19 10:04 251次下载

    STM32F103芯片资料介绍

    只是STM32F103芯片资料的简单介绍,文章由(逆向开发技术网)编辑整理。下次我们将具体介绍一下”STM32F103芯片解密方法”
    发表于 01-08 08:00 187次下载
    <b class='flag-5'>STM32F103</b>芯片资料介绍

    STM32F103点亮LED流水灯

    本文主要叙述了什么是寄存器及用寄存器和库函数的方式点亮LED流水灯,本文主要采用stm32f103c8t6开发开发环境:keil μVis
    发表于 11-26 10:21 20次下载
    <b class='flag-5'>STM32F103</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b>流水灯

    STM32F103_IOT物联网开发板学习专栏3_STM32F103控制LED

    STM32F103_IOT物联网开发板学习专栏3_STM32F103控制LED
    发表于 12-03 17:51 7次下载
    <b class='flag-5'>STM32F103</b>_IOT物联网<b class='flag-5'>开发</b>板学习专栏3_<b class='flag-5'>STM32F103</b>控制<b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    STM32F103点亮LED

    文章目录一、点灯1.打开时钟2. 初始化3. 设置低电平三、创建项目1. 新建项目2. 编写代码四、连接电路五、总结使用工具:stm32f103C8T6USB转串口面包板导线若干LED3个一、点灯
    发表于 12-07 09:51 16次下载
    <b class='flag-5'>STM32F103</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    GD32F103STM32F103的区别 2021.6.2

    GD32F103STM32F103区别介绍关键词Key words:GD32F103STM32F103摘要Abstract:本文主要是GD32F
    发表于 12-08 11:06 82次下载
    GD32<b class='flag-5'>F103</b>与<b class='flag-5'>STM32F103</b>的区别 2021.6.2

    STM32F103实验一:点亮LED

    STM32F103点亮LED
    发表于 12-27 18:36 49次下载
    <b class='flag-5'>STM32F103</b>实验一:<b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    【嵌入式】STM32F103寄存器方式点亮LED流水灯

    目录一、实验题目二、工程文件的建立三、点亮LED(软件部分)四、点亮LED(实操部分)五、实
    发表于 01-13 14:56 3次下载
    【嵌入式】<b class='flag-5'>STM32F103</b>寄存器方式<b class='flag-5'>点亮</b><b class='flag-5'>LED</b>流水灯