单片机对于我来说,就是一个超级大机器,上面有一排一排数不尽的开关,我需要做的,就是根据我的设计,拿着一张超级大的表(Datasheet),把需要的开关(reg)都开关(config)到对应功能的位置(硬件配置初始化),然后运行你设计的程序流程(while(1)后面的),这机器应该先做什么在做什么,应该一边做什么但是过一会儿查一个什么,什么发生了应该停下来做什么,什么来了应该回复什么,这样这样

比如你需要使用一个io口,需要打开时钟,配置方向,控制上下拉,甚至拓展附加功能

首先说说它的时钟,51没有时钟控制这一说是因为51比32简单,32内部结构很复杂,如果那个高频的时钟信号比如72M的那个,在所有内部线路上跑,那么芯片就会很费电,如果学过场效应管的原理你就会知道,数字电路让晶体管工作在两个状态中,饱和和截止,为什么呢,数字电路在1的时候有电压没电流,数字电路在0的时候有电流没电压,P=UI可知,两者只有其一(严格来说另一个很小),则功率很小,在中间切换的时候,处于放大区,比较耗电,所以,时钟是对功耗最好的控制,因此,默认状态下,大部分电路的时钟都是关闭的,当你要启用哪个模块,你就必须把他的时钟打开,消耗能源,启动功能。

第二个是属性类,比如单片机是i口还是o口,要不要上下拉,因为32的设计应用场景比较复杂,所以多样化的可选配置可以让32应付各种各样的设计。常用的有推挽(大拉力输出),开漏(小电流再加上拉电阻驱动大电流),上下拉等。还有速度控制,可选高速中速低速。

第三个是附加功能类,比如io口可以用做pwm输出,Adda输入输出,i2c,usart,等,根据不同的功能会有对应的功能设置,这个具体要看数据手册对相应寄存器的设定,初学建议用c语言配合库函数开发加深理解,一开始不要求自己能写,你去看别人写的初始化配置函数,能看懂就行。

说完了寄存器配置,说说中断,32的中断写法跟51的不一样,但是思路是一样的,保护现场,记录断点,跳转中断服务,清除标识,回到断电,恢复现场,32的中断比51多很多,也可以嵌套

说到底,32,51,430都只是单片机,只要知道他们的寄存器在那里,如何根据自己的功能修改寄存器的值,剩下的功能逻辑实现,就跟单片机无关了,对于你的显示屏来说,它并不知道你的mcu是什么,只是它发现出来的信号都一样,所以用51可以显示一朵花,同样的程序用32显示也不会变成一棵树,本质一样的

stm32入门(从51过渡到32)的更多相关文章

  1. stm32入门学习路线个人见解

    可以说就目前的市场需求来看,stm32在单片机领域已经拥有了绝对的地位,51什么的已经过时了也只能拿来打基础了,最后依然会转到stm32来,也正是因为这样stm32的学习者越来越多,其中不难发现绝大部 ...

  2. STM32 入门之 GPIO

    入手STM32有一段时间了,感觉刚入门时很难,无处下手,现在学到了点皮毛,写出来和大家分享一下. 首先,什么叫GPIO?这个问题,答案是我也不知道!至少目前我没有必要知道,我只要知道他其实就是51单片 ...

  3. 最简单的STM32入门教程----闪烁LED

    本文讲述的是如何从零开始,使用keil建立一个简单的STM32的工程,并闪烁LED灯,给小白看. 第零步,当然首先你得有一个STM32的板子,其IO口上接了一个LED... 第一步,建立一个文件夹0. ...

  4. STM32单片机和51单片机区别

    单片机 / AVR / PIC / STM32 / 8051803189C5189S51 6905 单片机简介 单片微型计算机简称单片机,简单来说就是集CPU(运算.控制).RAM(数据存储-内存). ...

  5. STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  6. STM32入门系列-启动文件介绍

    在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: ...

  7. STM32入门系列-库目录及文件介绍

    已经介绍了过了CMSIS标准,ST公司按照这个标准设计了一套基于STM32F10x的固件库,我们可以直接在ST公司的官网进行下载,现在给大家STM32最新固件库v3.5,在网盘上给大家提供了下载包,链 ...

  8. STM32入门系列-使用C语言封装寄存器

    前面文章介绍了存储器映射.寄存器和寄存器映射,这些都是为了介绍使用 C语言封装寄存器做铺垫.这里我们通过一个实例来对 C 语言封装寄存器进行介绍. 具体实例:控制 GPIOC 端口的第 0 管脚输出一 ...

  9. STM32入门系列-开发工具keil5安装

    主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com. ...

随机推荐

  1. 接收与发送邮件(XE10.2+WIN764)

    千万不要用QQ邮箱测试,我试了半天,没整明白. 一.设置信息 POP3接收邮件POP3服务器:exchange.grandsoft.com.cn端口:110账号:zhujq-a@glodon.com密 ...

  2. 编程精粹--编写高质量C语言代码(1):假想编译程序

    编译程序只能查找出程序的语法错误,而对于"数组越界訪问","对空指针解引用"等错误.编译程序是束手无策的.同一时候我们知道測试人员所使用的黑箱測试方法所能做的不 ...

  3. 从sql中image类型字段中导出图片

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  4. 利用层的table-row、table-cell属性进行页面布局

    利用层的table-row.table-cell属性可以进行等高.宽度自适应页面布局,这是参看了<我所知道的几种display:table-cell的应用>及<基于display:t ...

  5. 一个小bug

    如果提交表单给按钮一个名字,就会报错... <html> <body> <form action="{:U('Index/login')}" meth ...

  6. Java logger组件:slf4j, jcl, jul, log4j, logback, log4j2

    先说结论 建议优先使用logback 或 log4j2.log4j2 不建议和 slf4j 配合使用,因为格式转换会浪费性能. 名词:jcl 和 jul 标题中的 jcl 是 apache Jakar ...

  7. 下列可以用来解析XML的是( )

    A.CSS B.DTD C.SAX D.XSL 解答:C java解析xml文件四种方式:SAX DOM JDOM DOM4J

  8. C++ 编译器用于把源代码编译成最终的可执行程序

    C++ 编译器写在源文件中的源代码是人类可读的源.它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序. C++ 编译器用于把源代码编译成最终的可执行程序. 大多数的 ...

  9. CentOS 7修改MySQL 5.6字符集为UTF-8

    MySQL编码原因会导致数据库出现中文乱码 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 mys ...

  10. erlang工具:Sublime Text的插件

    SublimErl  :https://github.com/ostinelli/SublimErl   (推荐,操作较简单)                                      ...