张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

学STM32对你来说有什么好处

玩转单片机 2018-10-25 09:06 次阅读

STM32是32位的单片机却只要八位单片机的价格,速度也是八位的好几倍。

更重要的是它作为ARM入门级的芯片比较容易掌握,网上资料也很多,很多人都在用。

STM32的IO端口有7个寄存器来控制,但是我们常用的就4个:CRL、CRH、IDR和ODR 。

端口配置低寄存器(GPIOx_CRL)

端口配置高寄存器(GPIOx_CRH)

端口输入数据寄存器(GPIOx_IDR)

端口输出数据寄存器(GPIOx_ODR)

其中CRL控制高8位的IO,CRH控制低8位的IO。这两个实质是一样的。

八种模式

对照AVR来GPIOx_CRL就相当于DDRx;GPIOx_ODR就相当于PORTx;GPIOx_ODR就相当于PINxSTM32的IO口;可以由软件配置成8种模式。

输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、推挽输出、推挽式复用功能、开漏复用功能。

简单的来说STM32的CRL寄存器可以设置输入、输出模式,还可以设置输出的最大速率。

输入浮空:既不是上拉也不是下拉输入。

常见控制方法

接下来要说两个常常听到的控制方法:直接操作寄存器和库函数方法。直接操作寄存器就是直接对CRL等寄存器写值。库函数是ST官方把所有的控制都写好了,我们只需要调用。

直接操作寄存器

GPIOA-CRH=0XFFFFFFF0;

GPIOA-CRH|=0X00000003;/PA8推挽输出

GPIOA-ODR|=18;/PA8输出高

库函数

GPIO_InitTypeDef GPIO_InitStruct;

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_12 ;

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;

GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;

GPIO_InitStruct.GPIO_Speed=GPIO_Speed_Level_3;

GPIO_Init(GPIOA,GPIO_InitStruct);

GPIO_SetBits(GPIOA,GPIO_Pin_11|GPIO_Pin_12 );

举个栗子

现在写一个LED的初始化程序。

直接操作寄存器

/LED IO初始化

void LED_Init(void)

{

RCC-APB2ENR|=12;/使能PORTA时钟

GPIOA-CRH=0XFFFFFFF0;/PA8推挽输出

GPIOA-CRH|=0X00000003;/速率

GPIOA-ODR|=18;/PA8输出高一开始高灭灯

}

注:先要使能PORTA时钟。

库函数

void LED_Init(void)

{

GPIO_InitTypeDefGPIO_InitStructure;/声明结构体ST库

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);/使能PA端口时钟

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;/LED0-PA.8端口配置

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_8);/PA.8输出高

}

到这两种方法的初始化都OK了。

main函数

int main(void)

{

SystemInit();

/系统时钟初始化为72M SYSCLK_FREQ_72MHz

delay_init(72);/延时函数初始化

NVIC_Configuration();/设置NVIC中断分组2:2位抢占优先级,2位响应优先级

LED_Init();/LED端口初始化

while(1)

{

LED0=0;/也可以使用(库)GPIO_ResetBits(GPIOA,GPIO_Pin_8);

/寄存器GPIOA-ODR=-(18);

delay_ms(300);

LED0=1;/也可以使用 GPIO_SetBits(GPIOA,GPIO_Pin_8);

/寄存器|GPIOA-ODR|=18;

delay_ms(300);

}

}

使能PORTA时钟,这里说明下STM32的时钟树和AVR51等有很大的区别,它每个外设都会有自己的时钟,要使用一个外设必须要先开外设的时钟。这样也一定程度上减少了功耗。

原文标题:为什么要学STM32?答案就在这里!

文章出处:【微信号:mcu168,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

玩单片机到千万身家,“技术型老总”需要哪些神技能?

中国硬件创新大赛网络培训会—技术培训篇如果你就干这行,毫无疑问你不能错过这次直播;如果不是,可能你不一定喜欢单片机,也不
发表于 05-16 00:00 585次 阅读
玩单片机到千万身家,“技术型老总”需要哪些神技能?

使用C语言进行单片机编程的基本知识点和编程规范资料总结

这个8*8按键程序的过程中,不管是在自己写还是参考别人程序的过程中,发现自己对C语言有些基本知识点和....
的头像 玩转单片机 发表于 08-17 09:08 95次 阅读
使用C语言进行单片机编程的基本知识点和编程规范资料总结

【设计技巧】STM32开发笔记:STM32L0低功耗设计——需求概述

单片机型号:STM32L053R8T6 这几篇日志将详细记录,自己应用stm32进行低功耗设计的全过程。     使用芯片:S...
发表于 08-17 08:30 189次 阅读
【设计技巧】STM32开发笔记:STM32L0低功耗设计——需求概述

STM8S105系列单片机的数据手册免费下载

STM8S105xx接入线8位微控制器提供16至32千字节的闪存程序存储器,以及集成的真数据EEPR....
发表于 08-16 17:37 12次 阅读
STM8S105系列单片机的数据手册免费下载

怎么将相同两个传感器发送给上位机的数据分开保存和显示呢?

同时使用两个相同型号的传感器检测数据,单片机将数据上传到但闹上,两个数据的数据格式相同,可是怎么将这两个传感器的数据分开...
发表于 08-16 17:17 159次 阅读
怎么将相同两个传感器发送给上位机的数据分开保存和显示呢?

如何使用带有STM32F411的M24SR创建NDEF文本消息?

亲爱的大家, 如何使用带有STM32F411的M24SR创建NDEF文本消息? 我设法使用M24SR_UpdateBinary(和mbed ...
发表于 08-16 12:04 32次 阅读
如何使用带有STM32F411的M24SR创建NDEF文本消息?

STM32F103RCT6与笔记本能通信,却读不到实际上位机发来的数据

最近在用STM32F103RCT6替代以前的51,只差与上位机的串口通信了。 用STM32F103RCT6开发板与笔记本的串口助手能通...
发表于 08-16 11:27 222次 阅读
STM32F103RCT6与笔记本能通信,却读不到实际上位机发来的数据

求大佬说下这个单片机型号

一个20脚的单片丝印00T1T0P,有大佬知道这个是什么型号,哪都查不到,求助!!!!!!!!! ...
发表于 08-16 10:25 182次 阅读
求大佬说下这个单片机型号

STM32 cubeMX生成代码会修改MDK自己添加的目录如何解决?

使用cubeMX生成MDK项目之后 ,然后自己在MDK项目中添加自己的目录文件。 然后使用cubuMX再次生成代码,MDK项目中...
发表于 08-16 10:17 249次 阅读
STM32 cubeMX生成代码会修改MDK自己添加的目录如何解决?

Flash存储器的使用寿命有什么办法延长吗?

嵌入式系统的海量存储器多采用Flash存储器实现扩展,由于Flash存储器具有有限写入次数的寿命限制,因此对于Flash存储器局部的...
发表于 08-16 07:06 26次 阅读
Flash存储器的使用寿命有什么办法延长吗?

运载平台怎么实验水下航行器的功能?

进入21世纪以来,随着世界经济的发展,各国对资源的需求量不断增加,而陆地资源日趋紧张,各国便将目光投向了广阔的海洋。海洋监...
发表于 08-16 06:54 20次 阅读
运载平台怎么实验水下航行器的功能?

系统学习UCOS该从哪里开始?

玩过STM32,只不过限于简单的开发,了解嵌入式硬件结构。关于系统的东西没怎么接触过,想系统学习,希望前辈给点建议,应该从...
发表于 08-15 22:47 25次 阅读
系统学习UCOS该从哪里开始?

复位电路的三种方式

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机....
的头像 发烧友学院 发表于 08-15 15:23 122次 阅读
复位电路的三种方式

OV7670的驱动程序和模块经典资料合集免费下载

本文档的主要内容详细介绍的是OV7670的驱动程序和模块经典资料合集免费下载包括了:C8051F33....
发表于 08-15 08:00 41次 阅读
OV7670的驱动程序和模块经典资料合集免费下载

从原理图到PCB设计的DS18B20的测温电路实例演示

对于经常与单片机打交道的人,Protues是经常使用的仿真软件,对于我们的设计帮助很大。从设计到PC....
发表于 08-14 17:42 59次 阅读
从原理图到PCB设计的DS18B20的测温电路实例演示

W5500全硬件TCP IP协议以太网控制器模块的用户手册免费下载

YIXIN_W5500以太网模块是一款基于WIZnet W5500芯片的以太网模块,是一款性能出色、....
发表于 08-14 16:56 47次 阅读
W5500全硬件TCP IP协议以太网控制器模块的用户手册免费下载

单片机入门视频教程之基本电路知识的详细资料说明

本文档的主要内容详细介绍的是单片机入门视频教程之基本电路知识的详细资料说明。
发表于 08-14 16:56 122次 阅读
单片机入门视频教程之基本电路知识的详细资料说明

SPI接口的W5500以太网模块在STM32F4上的移植工程文件和程序免费下载

本文档的主要内容详细介绍的是SPI接口的W5500以太网模块在STM32F4上的移植工程文件和程序免....
发表于 08-14 08:00 49次 阅读
SPI接口的W5500以太网模块在STM32F4上的移植工程文件和程序免费下载

使用STM32F4和ADE7758实现单项用电器监测的程序和工程文件免费下载

本文档的主要内容详细介绍的是使用STM32F4和ADE7758实现单项用电器监测的程序和工程文件免费....
发表于 08-14 08:00 34次 阅读
使用STM32F4和ADE7758实现单项用电器监测的程序和工程文件免费下载

使用STM32F4和FDC2214实现简单的纸张计数工程文件免费下载

本文档的主要内容详细介绍的是使用STM32F4系列单片机和FDC2214电容传感器芯片实现简单的纸张....
发表于 08-14 08:00 69次 阅读
使用STM32F4和FDC2214实现简单的纸张计数工程文件免费下载

STM32cube软件使用教程之如何设置流水灯详细资料说明

本文档的主要内容详细介绍的是STM32cube软件使用教程之如何设置流水灯详细资料说明。
发表于 08-14 08:00 10次 阅读
STM32cube软件使用教程之如何设置流水灯详细资料说明

STM32Cube的使用教程之USART的详细资料说明

 假设已经安装好 STM32CubeMX 和 STM32CubeF4 支持包。 Step1.打开 S....
发表于 08-14 08:00 29次 阅读
STM32Cube的使用教程之USART的详细资料说明

STM32Cube的使用教程之按键输入的学习资料免费下载

本文档的主要内容详细介绍的是STM32Cube的使用教程之按键输入的学习资料免费下载。
发表于 08-14 08:00 29次 阅读
STM32Cube的使用教程之按键输入的学习资料免费下载

STM32Cube学习教程之外部中断的详细资料说明

本文档的主要内容详细介绍的是STM32Cube学习教程之外部中断的详细资料说明。
发表于 08-14 08:00 16次 阅读
STM32Cube学习教程之外部中断的详细资料说明

STM32Cube学习教程之定时器中断的详细概述

本文档的主要内容详细介绍的是STM32Cube学习教程之定时器中断的详细概述免费下载。
发表于 08-14 08:00 21次 阅读
STM32Cube学习教程之定时器中断的详细概述

STM32Cube学习教程之时钟树配置的详细资料概述

本文档的主要内容详细介绍的是STM32Cube学习教程之时钟树配置的详细资料概述。
发表于 08-14 08:00 18次 阅读
STM32Cube学习教程之时钟树配置的详细资料概述

STM32L151xx和STM32L152xx及STM32L162xx微控制器的参考手册免费下载

本参考手册面向应用程序开发人员。它提供了有关如何使用STM32L151xx、STM32L152xx和....
发表于 08-14 08:00 32次 阅读
STM32L151xx和STM32L152xx及STM32L162xx微控制器的参考手册免费下载

使用STM32单片机进行SPWM调制的实现方法详细说明

SPWM 全称正弦脉冲宽度调制技术,是用一系列等幅不等宽的脉冲等效正弦波。SPWM 技术是基于“面积....
发表于 08-13 17:40 40次 阅读
使用STM32单片机进行SPWM调制的实现方法详细说明

单片机外围器件实用技术手册电源器件分册PDF电子书免费下载

《单片机外围器件实用手册:电源器件分册》(北京航空航天大学出版社。关德新。冯文全) PDF格式扫描版....
发表于 08-13 17:15 95次 阅读
单片机外围器件实用技术手册电源器件分册PDF电子书免费下载

干货 | 几种常用单片机之间的通信方式

串行接口的RAM在市场上很少见,不但难以买到而且价格很高。
的头像 电子工程技术 发表于 08-12 16:59 196次 阅读
干货 | 几种常用单片机之间的通信方式

无线遥控灯具的结构及安装使用方法

无线遥控灯,由遥控部分和灯具部分组成。遥控和灯具上各由一块HT46单片机作为控制器,以NRF905无....
的头像 牵手一起梦 发表于 08-12 14:51 835次 阅读
无线遥控灯具的结构及安装使用方法

单片机的程序编写

MCU的程序的编写与PC下的程序的编写存在很大的区别,虽然现在基于C的MCU开发工具越来越流行,但对....
的头像 国科环宇 发表于 08-12 09:57 341次 阅读
单片机的程序编写

单片机的学习窍门分享

任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。
的头像 中国标准化 发表于 08-12 09:53 265次 阅读
单片机的学习窍门分享

微控制器的分类及应用

MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频....
的头像 电子工程技术 发表于 08-12 09:45 136次 阅读
微控制器的分类及应用

SN8F5702单片机的IO和定时器及PWM等学习资料合集免费下载

本文档的主要内容详细介绍的是SN8F5702单片机的IO和定时器及PWM等学习资料合集免费下载。 ....
发表于 08-12 08:00 27次 阅读
SN8F5702单片机的IO和定时器及PWM等学习资料合集免费下载

松翰单片机仿真器SN Link ISP V2.02应用程序免费下载

本文档的主要内容详细介绍的是松翰单片机仿真器SN Link ISP V2.02应用程序免费下载。
发表于 08-12 08:00 27次 阅读
松翰单片机仿真器SN Link ISP V2.02应用程序免费下载

DL-RTS1278M无线串口模块的数据手册免费下载

DL-RTS1278M是针对无线抄表、工业远程控制行业研发的一款高性能无线串口模块,其嵌入高速低功耗....
发表于 08-12 08:00 27次 阅读
DL-RTS1278M无线串口模块的数据手册免费下载

STM32单片机最小系统的PCB原理图完成版免费下载

本文档的主要内容详细介绍的是STM32单片机最小系统的PCB原理图完成版免费下载。
发表于 08-12 08:00 101次 阅读
STM32单片机最小系统的PCB原理图完成版免费下载

单片机最小系统的振荡电路原理分析

单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机....
的头像 玩转单片机 发表于 08-11 11:34 943次 阅读
单片机最小系统的振荡电路原理分析

单片机的“功耗”如何计算?

单片机的功耗是非常难算的,而且在高温下,单片机的功耗还是一个特别重要的参数。
的头像 电子工程技术 发表于 08-11 11:33 595次 阅读
单片机的“功耗”如何计算?

如何在单片机上实现卡尔曼滤波详细计算方法和程序概述

本文档的主要内容详细介绍的是如何在单片机上实现卡尔曼滤波详细计算方法和程序概述。
的头像 玩转单片机 发表于 08-11 11:23 336次 阅读
如何在单片机上实现卡尔曼滤波详细计算方法和程序概述

51单片机的keil配置方法

Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部RAM很少,只有256个....
发表于 08-10 10:28 79次 阅读
51单片机的keil配置方法

新建STM32工程全局声明两个宏的原因

在uVision中新建STM32工程后,需要从STM32标准库中拷贝标准外设驱动到自己的工程目录中,....
发表于 08-10 10:25 104次 阅读
新建STM32工程全局声明两个宏的原因

STC ISP单片机烧录软件下载程序不成功应该如何解决详细方法说明

本文档的主要内容详细介绍的是STC ISP单片机烧录软件下载程序不成功的多个解决详细方法说明资料免费....
发表于 08-09 17:17 73次 阅读
STC ISP单片机烧录软件下载程序不成功应该如何解决详细方法说明

51系列中嵌入式单片机的优缺点分析

51系列是应用最广泛的单片机,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的....
发表于 08-08 11:14 128次 阅读
51系列中嵌入式单片机的优缺点分析

使用STM32单片机设计的无人机飞控程序和原理图及PCB资料免费下载

本文档的主要内容详细介绍的是使用STM32单片机设计的无人机飞控程序和原理图及PCB资料免费下载。 ....
发表于 08-08 08:00 108次 阅读
使用STM32单片机设计的无人机飞控程序和原理图及PCB资料免费下载

51单片机从入门到精通教程之单片机原理与接口技术的详细资料讲解

本篇共6章,主要介绍MCS-51系列单片机的基础知识,内容包括51系列单片机的发展概况、硬件结构、指....
发表于 08-08 08:00 171次 阅读
51单片机从入门到精通教程之单片机原理与接口技术的详细资料讲解

使用单片机进行智能寻迹小车的设计资料合集免费下载

本文档的主要内容详细介绍的是使用单片机进行智能寻迹小车的设计资料合集免费下载包括了:毕业设计论文,参....
发表于 08-08 08:00 81次 阅读
使用单片机进行智能寻迹小车的设计资料合集免费下载

TX-1C 51单片机开发板使用手册和使用ADC0804实现示波器的工程文件

本文档的主要内容详细介绍的是TX-1C 51单片机开发板使用手册和使用ADC0804实现LCD128....
发表于 08-08 08:00 73次 阅读
TX-1C 51单片机开发板使用手册和使用ADC0804实现示波器的工程文件

微机原理及接口技术的七个实验指导资料免费下载

本文档的主要内容详细介绍的是微机原理及接口技术的七个实验指导资料免费下载包括了:实验一 一个简单的微....
发表于 08-08 08:00 92次 阅读
微机原理及接口技术的七个实验指导资料免费下载

浅析单片机指令执行过程

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。
的头像 贸泽电子设计圈 发表于 08-07 14:47 182次 阅读
浅析单片机指令执行过程

单片机中,P0上拉电阻的阻值的选取何讲究?

由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供....
的头像 贸泽电子设计圈 发表于 08-07 14:23 155次 阅读
单片机中,P0上拉电阻的阻值的选取何讲究?

RAM在单片机中用途是什么?

单片机就是个小计算机,大计算机少不了的数据存储系统,单片机一样有,而且往往和CPU集成在一起,更加显....
的头像 贸泽电子设计圈 发表于 08-07 14:10 164次 阅读
RAM在单片机中用途是什么?

MSP430F5529开发板实验指导书和程序免费下载

MSP430F5529 是最新一代的具有集成 USB 的超低功耗单片机,可以应用于能量收集、无线传感....
发表于 08-07 08:00 144次 阅读
MSP430F5529开发板实验指导书和程序免费下载

使用STM32单片机驱动OV7670进行图像的采集的程序和工程文件免费下载

本资料包含了一个工程文件,利用STM32单片机驱动OV7670进行图像的采集。
发表于 08-07 08:00 96次 阅读
使用STM32单片机驱动OV7670进行图像的采集的程序和工程文件免费下载

STM32F427xx和STM32F429xx微控制器的数据手册免费下载

STM32F427xx和STM32F429xx设备基于高性能ARM®Cortex®-M4 32位RI....
发表于 08-07 08:00 86次 阅读
STM32F427xx和STM32F429xx微控制器的数据手册免费下载

使用AVR单片机的I2C读取MPU6050发送到串口的程序免费下载

本文档的主要内容详细介绍的是使用AVR单片机的I2C读取MPU6050的数据发送到串口的程序免费下载....
发表于 08-06 16:39 129次 阅读
使用AVR单片机的I2C读取MPU6050发送到串口的程序免费下载

使用16位单片机和开关电容技术设计四阶低通椭圆程控滤波器

 本系统以凌阳16位单片机为控制核心,利用开关电容技术实现程控滤波的功能。前端放大器由运放和数字电位....
发表于 08-06 16:09 65次 阅读
使用16位单片机和开关电容技术设计四阶低通椭圆程控滤波器

单片机4大硬件加密方法解析

学会保护自己劳动成果很重要!
的头像 嵌入式资讯精选 发表于 08-06 15:16 186次 阅读
单片机4大硬件加密方法解析