小白跨行入门单片机从89C51到STM32
新手小白入门单片机其实很简单。硬件,软件的入门只需要理解他们之间的一个核心原理,然后配合入门几个基本的元器件和常用的几个编程关键字词的识别,应用。即可开始单片机的入门之旅。
这只是希望提供一个思路。你想让单片机按照你的想法工作。那么通过软件编程去设置它吧。
这个核心原理。从改变单片机某个引脚的高低电平开始。你想让这个单片按照你想要的方式改变它某个引脚的电平。于是编写一段软件代码烧录到单片机里面,然后单片机按照你想要的方式改变引脚的电平状态。比如让一个引脚接一个LED灯以1秒间隔闪烁。
具体到不同的单片机硬件软件都有些许不同,理解了核心原理,其他只是换汤不换药。比如想同样的改变某个引脚的电平状态只是软件写法,名称,规则等会有不同,原理都是差不多的。
以C51单片机为例。
这是一个STC15F104亮灭一个LED实例。需要硬件一个USB转TTL,一个stc15f104单片机,一个3.3V的LED灯,一个1K的电阻,连接这些零件的电线若干。需要准备软件KEILL的EDA编程环境,配套USB转TTL驱动,stc-isp-15xx烧录软件。还有最贵的一个东西。。。。一台能开机的电脑。
看示意图:了解基本的电路及电子元器件知识,看图接好准备的硬件电路。
电脑上89C51软件开发环境配置好,串口驱动打好。
程序思路就是导入C51的头文件,然后给用的哪个引脚取个名字然后加个延时每隔一秒改变一次引脚的电平状态。从而控制LED灯的亮灭。
代码示意如下:
#include <REGX52.H>
sbit LED =P3^3; //为控制LED灯的引脚取一个名字叫LED以下代码都围绕你想怎么控制这个LED灯展开。
void DELAY_MS(unsigned int a ){
unsigned int i;
while (--a !=0){
for (i=0;i<=600;i++);
}
}
void main (void){
while (1){
LED=~LED;
DELAY_MS(1000);
}
}
编译通过后烧录进单片机不出意外就可以看到效果。
----------------------------------------------------------------------
再看看STM32单片机。只是多了些引脚和其他所需基本电路,核心思想是一样的,想用哪个引脚控制LED灯就接哪个引脚,比如接在PA13上。
电脑上STM32软件开发环境配置好,串口驱动打好,FlyMcu等烧录软件安装好。
程序也是多了一些控制引脚所需的其他配置。也是导入stm32的头文件,然后给用的那个引脚配置好工作所需参数取个名字然后加个延时每隔一秒改变一次引脚的电平状态。从而控制LED灯的亮灭。
代码示意如下:
#include "stm32f10x.h"
void DELAY(unsigned int a ){ //设置延时函数,需适配
unsigned int i;
while (--a !=0){
for (i=0;i<=6000;i++);
}
}
void LedConfig(void) //配置好引脚工作所需参数
{
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //打开GPIOA的外设时钟
/* 配置结构体并初始化到GPIOA */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //选择需要使用的引脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //配置输出频率
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置引脚输出模式
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化结构体
}
int main (void)
{
LedConfig(); //调用配置好引脚工作所需参数
while(1){
GPIO_SetBits(GPIOA,GPIO_Pin_13);//控制PA13引脚电平变高
DELAY(20);//调用延时
GPIO_ResetBits(GPIOA,GPIO_Pin_13);//控制PA13引脚电平变低
DELAY(20);
}
}
STM32比C51多了更多代码,名称规则也不尽相同,功能更强大。这些东西思路都是相通的。从C51开始能通过敲代码实际控制一个灯的状态开始,单片机的门就算入了。剩下的就是不断学习,不断深入以实现更多更复杂更好玩的功能。硬件软件各有侧重,一切尽在入门之后。
小白跨行入门单片机从89C51到STM32相关推荐
- 入门单片机选择51还是stm32?入门单片机有哪些好的教学视频?
不知道大家还记不记得自己小学时候自己的梦想? 有人想成为医生.有人想成为医生,有人想成为飞行员,而我想成为发明家. 可能真是我这种想法,也导致我的性格从小就比较内向,毕业出来以后也从事技术. 人生的上 ...
- 小白如何入门单片机?几个建议助你提高学习效率,把握学习方向
单片机供应商众多,型号众多,全都学会不现实.学习的目的也不在于学会某一种单片机,而是要学会使用单片机的方法.所以,学习方法最重要,如何快速掌握一款陌生型号的单片机.给你几个建议. 单片机学好了,能做很 ...
- 新手入门单片机必须了解的那些事
51单片机作为单片机中最经典的一款,已经作为各大高校的电子.通信等专业的入门单片机课程来使用,想学单片机51是一个非常不错的入门单片机. STM32作为当下实用性比较突出的单片机,用来做入门的选择就会 ...
- 入门单片机需要购买什么东西,学哪款单片机最好?
最近看到有些人说学单片机好烧钱,把我看懵了,我的第一感觉是这孩子到底有多穷. 我印象中,10年前我自学单片机就买了一个51开发板,然后买了一套智能小车配件,总共花费不到500块钱. 通过几个月学习找到 ...
- 听我一句劝,单片机不要去学STM32真的
听我一句劝,单片机不要去学STM32真的 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦.最近 ...
- STM32单片机(一)STM32简介
❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分:建议先学习51单片机,其是STM32等高级单片机的基础:这样再学习STM32时才能融会贯通. ☀️ 专栏适 ...
- STM32单片机(二)STM32环境搭建
❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分:建议先学习51单片机,其是STM32等高级单片机的基础:这样再学习STM32时才能融会贯通. ☀️ 专栏适 ...
- 十天入门单片机是不可能的,初学者别想了
十几年前,我是通过郭老师的十天学会单片机教程和配套开发板入门单片机的. 最近被学员问到比较多的问题就是,单片机的学习周期大概要多久. 今天在这里统一回答下. 这个主要是要看学到什么程度,不过十天对大多 ...
- 如何入门单片机电子技术、学习方法、建议
今天我们就来聊一聊新手应该如何入门单片机电子技术. 电子行业中一般分为两类人群,就是爱好者和专业者,爱好者一般就是指对电子DIY感兴趣,喜欢自己动手做出一些产品来方便自己生活的.爱好者可能是更多的基于 ...
最新文章
- c++的:: . :-的区别
- 在emu8086中学习几个汇编语言显示字符串的小例子
- 科大星云诗社动态20210316
- USACO shuttle
- 使用ODBC连接SQL Anywhere 5.0(asp)
- 【请收藏】自动化构建部署之Travis CI使用(GitHub/Travis CI/Vue)
- Python minidom模块(DOM写入和解析XML)
- 7-5 抓老鼠啊~亏了还是赚了? (20 分)
- CentOS7 安装 transmission
- 二维otsu算法python_图像二值化与otsu算法介绍
- sd卡插入计算机要格式化,内存卡一直提示格式化,内存卡插电脑要格式化-
- tdscdma的matlab仿真,基于MATLAB的TDSCDMA调制解调仿真
- 静态库与动态库的区别与优缺点
- 「网络安全」安全设备篇(8)——流量监控
- 5G相比LTE 大的差异
- 貌似高大上,实则黑中介
- 机械硬盘速度突然变慢了
- Matlab图像的几何变换之图像缩放
- 【科普园地】郭雷院士:系统的反馈原理及魅力
- Word控件Spire.Doc 【邮件合并】教程(四):如何使用邮件合并合并图像值