MM32初识(兼容STM32)
MM32初识(兼容STM32)
资源与开发环境
- keil 5.0
- MM32 miniboard
提要
- stm32入门(MM32兼容)
- 点亮LED思路简介
- GPIO配置
- stm32寄存器理解与操作步骤
分层抽象思想
对于数字逻辑硬件,能识别的只有二进制(0/1),我们的操作最终都会变成0/1的操作,只是我们聪明的计算机工程师在中间加入许多抽象层,使开发接见我们的自然语言,解放我们的记忆,使用编译器将转变ASCII为硬件识别的二进制代码。
下面是自己理解的stm32的基本抽象层次:
地址
对一个外设的操作,直接可以映射到外设地址的操作,这样做会使我们记忆一些苦涩的地址,更麻烦的是,书写的代码只能用与这款芯片,只要芯片的地址有任何改动,你都得仔细检查你的代码是否映射正确,没有移植性可言。
寄存器,结构体
使用C语言的结构体,将地址映射到一个有意义的名字上,然后再将其封装成结构体,这样我们对照着开发手册即可进行开发。但芯片升级了,我们只要修改最底层的地址与寄存器名字的映射文件即可进行一定的移植。然而,寄存器的可读性还是很差,每次阅读,或许你需要对照着开发手册的寄存器描述阅读,但也可以对外设的原理理解得更加清楚。
库函数
在寄存器的基础上,将外设的一些操作封装成函数,但需要配置外设时,可以直接调用该函数即可。应用方便,可读性强。
编程学习思路(点亮LED)(使用寄存器编程)
LED点亮思路
1、先查看原理图上LED的连接情况
由原理图可以知道LED灯与GPIO的链接情况。
LED点亮思路:配置GPIO输出高低电平控制LED的亮灭。
2、GPIO配置
这里点亮LED需要配置PA15/PB3/PB4/PB5四个引脚的输出
打开用户手册(UM_MM32_MiniBoard_Ver1.0)的GPIO一章进行GPIO输出的配置
GPIO配置思路
- 1、开启GPIO时钟(复位和时钟控制RCC一章)
- 2、GPIO输出模式配置,GPIOx_CRL/GPIOx_CRH寄存器配置成推挽输出模式
- 3、GPIO输出信号配置,GPIOx_ODR中配置输出高低电平
程序下载
使用keil编译之后下载到MM32的miniboard板上,按下复位键后即可看到LED等亮起。



参考资料
[1]. MM32 miniboard资料
MM32初识(兼容STM32)的更多相关文章
- MM32 备份域学习(兼容STM32)
MM32 备份域学习(兼容STM32) 内容提要 备份域工作原理 备份域特性 备份域的保护:侵入检测 备份域侵入检测 备份域电源与主要内容 备份域特性 20字节数据后备寄存器(中容量和小容量产品),或 ...
- MM32看门狗学习(兼容STM32)
MM32看门狗学习(兼容STM32) IWDG独立看门狗 思维导图 IWDG框图与理解 1.独立看门狗分为两个部分,配置寄存器在1.8V供电区,计数器的核心部分在VDD供电区(即使停机/待机模式计数器 ...
- MM32Flash读写操作(兼容STM32)
MM32Flash读写操作(兼容STM32) Flash基础描述 思维导图 编程实现读写操作 主函数结构 #include "delay.h" #include "sys ...
- MM32 RTC学习(兼容STM32)
RTC学习 RTC简述 实时时钟是一个独立的定时器. RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能. 修改计数器的值可以重新设置系统当前的时间和日期. RTC模块和时钟配 ...
- 单片机modebus RTU通信实现,採用C语言,可适用于单片机,VC,安卓等
当前使用的是STM32+ucos_ii编写的,能够移植到安卓以及VC .NET等方便移植使用,採用modebus poll測试过. 仅仅须要改动响应的通信接口就可以,方便多串口使用 //modebus ...
- 单片机modebus RTU通信实现,采用C语言,可适用于单片机,VC,安卓等(转)
源:单片机modebus RTU通信实现,采用C语言,可适用于单片机,VC,安卓等 //modebus_rtu.c /***************************************** ...
- GD32芯片移植完全攻略
GD32是国产兆易创新公司生产的完全兼容STM32系列的Cortex-M3处理器,具有几大亮点:1,高主频108MHz.性能提升30%以上,可超频到120MHz2,Flash零等待.STM32的72M ...
- 第4章 初识STM32
第4章 初识STM32 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...
- 第4章 初识STM32—零死角玩转STM32-F429系列
第4章 初识STM32 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资 ...
随机推荐
- 利用js加载本地图片预览功能
直接上代码: 经测试,除safari6包括6以下不支持,其他均可正常显示. 原因:safari6不支持filereader,同时不能使用IE滤镜导致失效. fix: 可以利用canvas,解决safa ...
- Linux系统中,main函数的执行过程
http://blog.csdn.net/rrerre/article/details/6728431
- 3.5 linux 0.11 目标文件格式
在Linux0.11系统中,GNU gcc或gas编译输出的目标模块文件和链接程序生成的可执行文件都使用了UNIX传统的a.out格式.这是一种被称为汇编与链接输出(Assembly & li ...
- git config --global core.excludesfile配置gitignore全局文件
Linux中,这时把全局要忽略的文件列表.gitignore放当前用户根目录下: git config --global core.excludesfile '~/.gitignogtire' Win ...
- python学习第一课要点记录
写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考.感觉这样学不好,除了多写 ...
- Angular2案例rebirth开源
Angular2案例rebirth开源 在过去的几年时间里,Angular1.x显然是非常成功的.但由于最初的架构设计和Web标准的快速发展,逐渐的显现出它的滞后和不适应.这些问题包括性能瓶颈.滞后于 ...
- 【Hybrid App】Hybrid App开发 四大主流移平台分析
转自http://dev.yesky.com/238/34657738.shtml Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之 ...
- 【Express】路由
var express = require('express'); var app = express(); app.set('port', process.env.PORT || 3000); ap ...
- -_-#【Canvas】转成黑白
function drawInBlackAndWhite() { var imagedata = context.getImageData(0, 0, canvas.width, canvas.hei ...
- C++ BigInteger 大整数类模板(转)
#include <deque> #include <vector> #include <iostream> #include <string> #in ...





