[DAY 4] _ 用Keil5直接编写暂存器操控MCU的GPIO口_(建Keil5环境)

我今天来讲下如何看手册操作暂存器好了,就以简单的GPIO口hi low就好,我手边刚有STM32F429,STM32F103、STM32F030CC,我会先讲一下103的如何打,这块是电子零件几乎都有卖的STM32F103C8T6开发板,长的如下图:
https://ithelp.ithome.com.tw/upload/images/20210917/20141979CelfJwVEs1.png
想入门STM32先买这块来玩看看,大多的电子商场开发版跟烧录器是分开卖的~左边为开发版右边和烧录器,至於这块开发版的原理图网路上有,也很多版本但都没差,就跟我第DAY2说的一样原理。

好,那就直接开始吧~如何直接操作暂存器,到这里大家最起码要先装好Keil5下载好我昨天说的驱动包,接下来教如何在Keil5上练习这块开发版,实作就先以简单的LED闪烁来示范如何直接操作暂存器。

首先在非中文路径下创建资料夹,档名不要取中文,Keil5可能会报错误讯息,我这边取stm32f103c8t6_led,开启keil5,先去ST官网载标准库
ST官网载点

先开起Keil5,案新增专案再来取专案名称,我这边取LED如下图:
https://ithelp.ithome.com.tw/upload/images/20210917/20141979toGWEuPToP.png
再来会跑出选MCU型号,我这边选择stm32f103c8
https://ithelp.ithome.com.tw/upload/images/20210917/20141979zIGZEsMEbh.png
选择完後会跳出这以下这框框,这边我们先不引入函示库,直接点Cancel
https://ithelp.ithome.com.tw/upload/images/20210917/20141979tEvBWy7Tes.png
再来照以下4步骤
1.新增档案 2.储存档案 3.输入stm32f103.h 4.按储存,在做同样步骤新增main.c
https://ithelp.ithome.com.tw/upload/images/20210917/201419790eXgDkSOvB.png

stm32f103.h跟main.c都创建跟储存完成後再来抠前面下载的标准库里面有个.s档
路径:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
https://ithelp.ithome.com.tw/upload/images/20210917/201419798HmHi85XYQ.png
可以看到上图他有很多档案,这是根据MCU大中小记忆体去分的,我们这边用的 md.s 属於中等容量,关於这个手册第1页有提到F103属於中容量。打这个档案拖到刚刚建专案的资料夹底下。
到这边会有以下这三个档案如图红框:
https://ithelp.ithome.com.tw/upload/images/20210917/20141979BuE2VOU0fU.png

再来是要新增这三个档案至专案里,方法如下图
https://ithelp.ithome.com.tw/upload/images/20210917/20141979DoZVg0jzw9.png
1.在这框起来地方连点2下 2.跑出这视窗後选取刚刚新建的那三个档案 3.按add新增

再来最後一个建环境很重要的步骤,就是为了要Keil5知道你要include的.h在哪,所以要设定路径,方法如下图:
https://ithelp.ithome.com.tw/upload/images/20210917/20141979275ddta8qx.png

按照这顺序点就可以了。
基本环境就好了~~
由於今天在忙别的事,真的挤不出甚麽时间来来打暂存器位置给你们看,只打到一半就留给明天吧~~
其实以前练习过了,但档案不见了,要重打重心找暂存器位置,有点麻烦,只要懂这概念就好,明天就会知道我为什麽这样说了。

这些文章完全是我自己打出来的,网路大概不会找到这麽详细的教学了...有的话也大概在大陆网站才找的到吧,我先前也看过大陆教学STM的网站,也没写得步骤比我详细。
明天:直接操作暂存器控制GPIO口!!。


<<:  [Day2] HTTP 基础

>>:  Day 17 - YOLO 相关概念说明

云服务器安全吗?云服务器有哪些优势?

相比较传统的服务器来说,云服务器的安全性是更高的,因为传统的服务器的安全性,其实是需要日常大量的维护...

Day 12:145. Binary Tree Postorder Traversal

今日题目 题目连结:145. Binary Tree Postorder Traversal 题目主...

IT铁人DAY 4-物件导向基本概念(3)

修饰符(Modifier)   上一篇有讲到封装的特性,也就是把一个类别要运行操作所需用到的资讯都包...

day19 : redisDB keyDB on K8S (上)

redisDB是一个快速轻量的key-value资料库,因为可以无状态的执行,我个人认为非常适合运行...