深圳市鹏海达电子有限公司!为您提供电子元件等相关信息,敬请关注!
服务热线:0755-23997336 网站地图 XML

利用STM32F103C8T6最小系统板点亮流水灯

来源 : www.penghaida.com   发布时间 : 2021/1/22 16:04:00

后台管理网民提议制做一个流水灯,恰好察觉自己有以前选购的STM32F103C8T6关键板,今日搭建一个流水灯,恰好学习培训一下STM32 GPIO输出怎样完成,未来驱动器无源蜂鸣器、汽车继电器等都是会应用的。

流水灯等同于编程语言中的“Hello World”,对着做一遍,完成了它,基础你也就新手入门了。

个人目标

  • STM32F103C8T6最小系统板的应用
  • 面包板搭建流水灯电源电路的方式
  • 将STM32F103RCT6工程项目模板改动为STM32F103C8T6的工程项目模板
  • 了解STM32 单片机设计GPIO做为输出的操作方法

STM32F103C8T6集成ic介绍

依据STM32&STM8产品规格命名规范(参照:STM32单片机设计最小系统详细说明)得知:
STM32F103C8T6这一取名中:

  • STM32意味着STM32大家族,32位MCU;
  • F意味着产品类别为基本型;
  • 103意味着特殊作用为STM32基本型;
  • C意味着引脚数为48&49脚位;
  • 8意味着内存空间为64KB;
  • T意味着封裝为QFP;
  • 6意味着温度范围为-40到 85℃。

关键板电路原理图



根据电路原理图大家得知:

  • 木板供电系统有二种方法:
  1. 根据U3 USB-micro插口出示9V供电系统,随后历经板载的LDO集成ic变为VCC3V3;
  2. 根据P2 插口,即SWD免费下载插口中的VCC3V3给关键板供电系统。
  • 关键板上面有2个LED,在其中一个为指示灯PWR,此外一个LED与PC13脚位相接,当PC13置高时,LED灭;当PC13置低时,LED亮;
  • 关键板上的漏线是为了更好地挑选运行方式应用。大家为了更好地让程序流程以主闪存芯片储存器做为运行地区,必须将BOOT0置低,BOOT1随便,此类运行方式是最常见的客户FLASH运行,为默认设置运行方式;
  • 关键板上的功能键为RESET校准功能键;
  • P2插口为SWD免费下载方式相匹配的脚位插口;

搭建流水灯电源电路

  • 提前准备电子器件



留意:
电阻器应用的是2K,做为过流保护应用;
LED留意正负,直插发光二极管,脚位长的为正级,短的为负级;假如脚位被剪掉了,一样长了,查询发光二极管管身內部金属材料巨大小,金属材料极较小的是正级,大的块状的是负级。


  • 搭建电源电路
    依照以下电路原理图搭建电源电路


  • 搭建结束设计效果图


改动工程项目模板

在根据STM32固定件库的MDK5工程项目创建基本上,将STM32F103RCT6工程项目模板改动为STM32F103C8T6的工程项目模板。
改动点:

  • 更换运行文档,将startup_stm32f10x_hd.s拆换为startup_stm32f10x_md.s,startup_stm32f10x_md.s为中等水平容积商品应用的运行文档,相匹配FLASH的尺寸范畴为:64K≤FLASH≤128K。


  • 改动全局性宏定义,将STM32F10X_HD改动为STM32F10X_MD。


  • 变更应用的主控芯片


  • 设置下载的Flash容积


留意:
在网上说STM32F103C8T6和STM32F103CBT6 是在同一圆晶上生产制造的,但检测时,只检测指南出示的主要参数范畴所包括的內容,也就代表着 STM32F103C8T6也是128k Flash,只不过是只检测了前边64k,随后打上 STM32F103C8T6标明(自然內部就写上 C8T6 的 ID);因此 我们在加上Flash的情况下,只有寻找128K的STM32F103,而找不着64K的Flash。

编码完成

  • 设定PA5、PA6、PA7为输出

GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);

  • 复位GPIO为上拉电阻,上拉电阻的情况下,LED灭

GPIO_SetBits(GPIOA,GPIO_Pin_5); GPIO_SetBits(GPIOA,GPIO_Pin_6); GPIO_SetBits(GPIOA,GPIO_Pin_7);

  • 流水灯编码实际完成

#include "stm32f10x.h" void Delay(u32 count) { u32 i=0; for(;i<count;i ); } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_5); GPIO_SetBits(GPIOA,GPIO_Pin_6); GPIO_SetBits(GPIOA,GPIO_Pin_7); while(1) { GPIO_ResetBits(GPIOA,GPIO_Pin_5); GPIO_SetBits(GPIOA,GPIO_Pin_6); GPIO_SetBits(GPIOA,GPIO_Pin_7); Delay();Delay();Delay(); GPIO_SetBits(GPIOA,GPIO_Pin_5); GPIO_ResetBits(GPIOA,GPIO_Pin_6); GPIO_SetBits(GPIOA,GPIO_Pin_7); Delay();Delay();Delay(); GPIO_SetBits(GPIOA,GPIO_Pin_5); GPIO_SetBits(GPIOA,GPIO_Pin_6); GPIO_ResetBits(GPIOA,GPIO_Pin_7); Delay();Delay();Delay(); } }

成果展

阅读推荐

STM32单片机设计最小系统详细说明

根据STM32固定件库的MDK5工程项目创建

改动Keil工程项目名字并加上别的控制模块文档



从六月份逐渐,每一个月会制做一个毕业设计论文难度系数的DIY著作,
早期著作以控制模块组成的方式搭建,减少门坎,便捷大伙儿一起跟随做;
DIY全过程只在微信公众平台中共享,大伙儿没关心的,赶快关心哈。

每一个月時间大概分配:

  • 上一月25号,发布DIY作品;
  • 每月1日发布著作作用点及所必须的程序模块连接;
  • 每月10日前绘图完控制模块相互配合的pcb线路板;
  • 每月15日以前硬件配置搭建结束,以后按控制模块编写编码,调节,随时随地微信公众号升级进度;
  • 每月月底开源系统全部著作的源代码和PCB工程文件。

题型选择标准:

  • 微信公众号每一个月20日进行网络投票,25号截至,票最多的做为下一个月的DIY內容;
  • 网络投票的备选择项大伙儿能够后台管理留言板留言帮我,我能挑选出五种留言板留言数最多的做为选择项;
  • 每一个月的DIY內容尽可能与上一月共享的文章内容有一定的相关性,具有温故而知新的功效。

有哪些念头或是提议,后台管理留言板留言帮我哈。


喜爱请关心:内嵌式从零到一



若感觉此次共享的文章内容对您有协助,顺手关注并分享共享,也是一件事的适用。