侵权投诉

学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,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

基于MCU+CPLD双片结构实现新型光电轴角编码器的应用方案

光电轴角编码器是一种采用光电方法,将机械转角转换成数字电信号输出的数字测角装置。它可以和显示装置或计....
发表于 08-11 17:33 19次 阅读
基于MCU+CPLD双片结构实现新型光电轴角编码器的应用方案

PLD原理图的设计与电路仿真

我们通过使用GAL16V8设计一个在单片机系统里常用的三八译器,然后在PROTEUS中通过观察GAL....
发表于 08-11 16:25 15次 阅读
PLD原理图的设计与电路仿真

基于AD603和MAX297实现程控滤波器的设计

该系统设计由可控增益放大器、程控滤波器、椭圆滤波器和幅频特性测试仪4部分组成。图1为其系统总体设计框....
发表于 08-11 16:20 16次 阅读
基于AD603和MAX297实现程控滤波器的设计

目前攻击单片机主要有四种技术,分别都是哪四种

为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序....
发表于 08-11 14:18 20次 阅读
目前攻击单片机主要有四种技术,分别都是哪四种

基于傅里叶变换技术实现电弧炉谐波检测装置的应用方案

电弧炉等各种非线性设备会产生谐波。在电力系统中,高次谐波产生了多余的谐波损耗,使各种电力设备的效率降....
发表于 08-11 13:58 46次 阅读
基于傅里叶变换技术实现电弧炉谐波检测装置的应用方案

导电材料温度测量系统的设计和实现方案

随着电子工业及信息技术等产业的迅速发展,对于具有导电功能的高分子材料的需求越来越迫切。导电复合材料具....
发表于 08-11 11:15 31次 阅读
导电材料温度测量系统的设计和实现方案

【应用笔记】主销品种FAQ手册(三) COB封装显示驱动类

模块上电后为什么无显示? 1、可能为邦定异常,邦定环节时可能存在邦偏、漏邦等导致模块无功能,建议修改邦定参数,规范邦定操作...
发表于 08-11 11:04 0次 阅读
【应用笔记】主销品种FAQ手册(三) COB封装显示驱动类

请问STM32采样的交流电压后,怎么计算出有效值呢?

STM32采样的交流电压后,怎么计算出有效值呢? 求一个算法。 由于加了直流偏置,还要通过校零,但是ADC有漂,校零后的值...
发表于 08-11 08:02 0次 阅读
请问STM32采样的交流电压后,怎么计算出有效值呢?

请问Altium Designer09 stm32元件库有最新的吗?

我看了一下 STM32F103VC 元件都没有!请问大侠们设计的时候都怎么搞的!初学望赐教!...
发表于 08-11 08:00 0次 阅读
请问Altium Designer09 stm32元件库有最新的吗?

使用STM32单片机设计一个无线抢答器的资料合集详细说明

本文档的主要内容详细介绍的是使用STM32单片机设计一个无线抢答器的资料合集详细说明
发表于 08-11 08:00 9次 阅读
使用STM32单片机设计一个无线抢答器的资料合集详细说明

关于STM32CubeIDE环境下的变量显示及监测

使用expression视窗查看变量结果的话,当程序在运行时是不能查看动态结果的,这时数据可能保持不....
的头像 ST MCU 信息交流 发表于 08-10 16:24 94次 阅读
关于STM32CubeIDE环境下的变量显示及监测

基于CubeMx配置RTOS和GUI时的两个小问题

这里的CMSIS-V1和CMSIS-V2是指CMSIS里面的一个跟RTOS有关的软件组件。所谓CMS....
的头像 ST MCU 信息交流 发表于 08-10 16:20 33次 阅读
基于CubeMx配置RTOS和GUI时的两个小问题

单片机以FPGA 为控制核心,用键盘控制系统实现各种功能

方案 1:利用公式 H(s)=R(s)/E(s),以冲击函数为激励,则输出信号的拉氏变换与系统函数相....
发表于 08-10 15:38 46次 阅读
单片机以FPGA 为控制核心,用键盘控制系统实现各种功能

十四位串行AD转换器MAX194芯片的工作原理、性能和应用设计分析

在一些实时数据采集与信息处理电路中,要满足数据采集的精度和速度要求,以必须采用分辨率高,转换速度快的....
发表于 08-10 14:33 58次 阅读
十四位串行AD转换器MAX194芯片的工作原理、性能和应用设计分析

使用单片机设计一个数字电压表的详细资料说明

传统的指针式电压表功能单一,精度低,读数不方便。不能满足数字化时代的需求,采用单片机的数字电压表,其....
发表于 08-10 08:00 12次 阅读
使用单片机设计一个数字电压表的详细资料说明

PIC16F1933单片机示例程序资料免费下载

本文档的主要内容详细介绍的是PIC16F1933单片机示例程序资料免费下载。
发表于 08-10 08:00 15次 阅读
PIC16F1933单片机示例程序资料免费下载

单片机技术的详细资料说明

随着超大规模集成技术的发展,微处理器不再独占一个芯片了。一个芯片中既集成有微处理器,也集成有某些外围....
发表于 08-10 08:00 43次 阅读
单片机技术的详细资料说明

两种单片机IO扩展的方法和代码免费下载

本文档的主要内容详细介绍的是两种单片机IO扩展的方法和代码免费下载。
的头像 Wildesbeast 发表于 08-09 14:13 105次 阅读
两种单片机IO扩展的方法和代码免费下载

使用单片机实现串口通信的资料详细说明

串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制....
的头像 Wildesbeast 发表于 08-09 14:13 111次 阅读
使用单片机实现串口通信的资料详细说明

单片机复位电路有哪几种?单片机复位电路的作用和工作原理图解

对于单片机是高电平还是低电平复位,我们可以通过观察单片机的引脚图进行一个直观的判断,当单片机引脚图中....
发表于 08-08 17:37 59次 阅读
单片机复位电路有哪几种?单片机复位电路的作用和工作原理图解

单片机晶振电路的原理和作用图解

还有一点,一般带有微控制器的电路板,电路功能是否正常,是需要编写一定的验证程序来测试电路板的性能的,....
发表于 08-08 17:34 70次 阅读
单片机晶振电路的原理和作用图解

AltiumDesigner20画图不求人6 | 提高AD20启动速度的方法2关闭重新加载修改的文件 | 视频教程 | 你问我答

Altium官方推出AltiumDesigner20已经有段时间了,但是一直没有上手,之前电子芯的《AltiumDesigner画图不求人》是以AD...
发表于 08-08 13:06 606次 阅读
AltiumDesigner20画图不求人6 | 提高AD20启动速度的方法2关闭重新加载修改的文件 | 视频教程 | 你问我答

基于复杂可编程逻辑器件ATF1508AS实现多入多出系统的设计

SoC(System on Chip)是将来电路设计的一个趋势,由于CPLD(Complex Pro....
发表于 08-07 17:39 81次 阅读
基于复杂可编程逻辑器件ATF1508AS实现多入多出系统的设计

N76E616单片机开发板的电路原理图免费下载

本文档的主要内容详细介绍的是N76E616单片机开发板的电路原理图免费下载。
发表于 08-07 17:39 140次 阅读
N76E616单片机开发板的电路原理图免费下载

使用CPLD器件和晶体震荡器实现超声波测距系统的设计

以往利用超声波测量距离往往采用单片机单机系统(由单片机软件控制发射、接收及计数器的关停与启动),这种....
发表于 08-07 17:31 46次 阅读
使用CPLD器件和晶体震荡器实现超声波测距系统的设计

如何才能学好单片机

很多单片机初学者问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机、....
发表于 08-07 17:14 116次 阅读
如何才能学好单片机

使用单片机设计一个仿人机器人的散件清单和资料详细说明

在青少年中学习开发应用机器人是时代的需要, 应适教育的需要, 提高学生素质的好方法。机器人可分为轮式....
发表于 08-07 17:14 60次 阅读
使用单片机设计一个仿人机器人的散件清单和资料详细说明

2020 STM32全国研讨会报名开启,带来基于STM32的最新技术创新

⊙活动背景 : 2020年STM32全国巡回研讨会即将拉开帷幕。自2007年以来,STM32全国研讨会已成为工程师洞悉嵌入式领域最新产...
发表于 08-07 12:05 101次 阅读
2020 STM32全国研讨会报名开启,带来基于STM32的最新技术创新

基于单片机和FPGA实现低频段数字式频率特性测试仪的设计

该系统以单片机和FPGA为控制核心,用DDFS技术产生频率扫描信号,采用真有效值检测器件AD637测....
发表于 08-07 10:28 83次 阅读
基于单片机和FPGA实现低频段数字式频率特性测试仪的设计

STM32STM32F103 AD采样波动幅度大的问题

目标:通过STM32F103采样4路0-5V电压 电路:通过等值电阻分压为0-2.5V采样 电阻值:       1、通...
发表于 08-07 09:53 0次 阅读
STM32STM32F103 AD采样波动幅度大的问题

STM32+ucosii+emwin这三个的配置是多少?

    本人使用的是stm32VET6,内存是64K的,单独移植ucos和emwin都成功了,但是当把两个合在一起时程序跑到一半就进...
发表于 08-07 08:00 0次 阅读
STM32+ucosii+emwin这三个的配置是多少?

STM32上可以移植的操作系统有什么啊?

STM32上可以移植的操作系统有什么啊,我的同学和我想开发一个手机应用软件,但想基于咱们这个开发板的平台来做,想问问是否可...
发表于 08-07 01:33 0次 阅读
STM32上可以移植的操作系统有什么啊?

请问STM32怎么选型?

有一个课程设计,要使用单片机,想用STM32,用哪个芯片型号呢...
发表于 08-07 00:16 0次 阅读
请问STM32怎么选型?

利用高增益运放实现测量放大器的设计和提高性能指标

测量放大器也称为仪表放大器或数据放大器,它是一种可以用来放大微弱差值信号的高精度放大器,在测量控制等....
发表于 08-06 15:12 109次 阅读
利用高增益运放实现测量放大器的设计和提高性能指标

基于芯片实现高精度数字温度计测量系统的设计

DS1620是一片8引脚的片内建有温度测量并转换为数字值的集成电路,他集温度传感、温度数据转换与传输....
发表于 08-06 11:58 165次 阅读
基于芯片实现高精度数字温度计测量系统的设计

采用单片机和传感器实现温湿度检测系统的设计

MSP430系列单片机是TI公司推出的功能强大的超低功耗16位混合信号处理器。该系列单片机以其极低的....
发表于 08-06 11:26 74次 阅读
采用单片机和传感器实现温湿度检测系统的设计

mcu芯片是指什么芯片_mcu芯片概念股

MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频....
的头像 电子魔法师 发表于 08-06 10:54 1980次 阅读
mcu芯片是指什么芯片_mcu芯片概念股

基于Xilinx XC95144和单片机实现数字频率计的设计

本文提出的基于CPLD和单片机相结合的设计方案不仅能较好地解决误差问题,误差仅小于等于 0.1HZ,....
发表于 08-05 16:21 87次 阅读
基于Xilinx XC95144和单片机实现数字频率计的设计

基于HT46R47单片机实现智能检测仪器的设计

对单片机为核心构成的智能检测仪器,测量电压、频率时有多种方法。一般对电压测量采用A/D转换法或V/F....
发表于 08-05 15:42 81次 阅读
基于HT46R47单片机实现智能检测仪器的设计

嵌入式单片机的特点_嵌入式单片机的应用

嵌入式单片机,即嵌入式微控制器,指以微控制器为核心控制单元的嵌入到对象体系中的专用计算机系统,是应用....
发表于 08-05 14:53 71次 阅读
嵌入式单片机的特点_嵌入式单片机的应用

利用电阻测长法达到检测锚杆长度质量的目的

锚杆支护从最初引进国内到现在,已在地下结构工程中得到了广泛的应用;特别是在较软弱、破碎的岩体中,它具....
发表于 08-05 14:51 58次 阅读
利用电阻测长法达到检测锚杆长度质量的目的

如何使用单片机实现Web服务器的设计

 1.单片机Web服务器传输速度快、有成熟的。协议栈软件可以利用2.外围芯片少,成本低,开发速度快3....
发表于 08-05 14:28 47次 阅读
如何使用单片机实现Web服务器的设计

51单片机利用中断使数码管动态显示,其优势是什么

关于中断的寄存器,如图: 图1 IE中断使能寄存器的位分配(地址 0xA8、可位寻址) 图2 IE中....
发表于 08-05 11:13 64次 阅读
51单片机利用中断使数码管动态显示,其优势是什么

关于用定时器来实现led小灯1s间隔亮灭方案的解析

本案例是用定时器实现led小灯1s间隔亮灭。 想要实现led小灯在固定时间间隔进行亮灭,很明显,我们....
发表于 08-05 11:10 138次 阅读
关于用定时器来实现led小灯1s间隔亮灭方案的解析

单片机简叙!单片机可以做什么?

功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种....
的头像 玩转单片机 发表于 08-05 10:57 253次 阅读
单片机简叙!单片机可以做什么?

使用MicroLIB+fputc的方式实现串口打印功能

要实现fputc函数的原因是:printf函数依赖于fputc函数,重新实现fputc内部从串口发送....
的头像 玩转单片机 发表于 08-05 10:52 173次 阅读
使用MicroLIB+fputc的方式实现串口打印功能

从单片机转到ARM —— ARM架构基础知识小结

R13通常被用作栈指针,进入异常模式时,可以将需要使用的寄存器保存在R13所指的栈中;当退出异常程序....
的头像 玩转单片机 发表于 08-05 10:32 319次 阅读
从单片机转到ARM —— ARM架构基础知识小结

简析单片机中的高阻态

电路分析时高阻态可做开路理解,你可以把它看作输出(输入)电阻非常大。它的极限可以认为悬空,也就是说理....
的头像 玩转单片机 发表于 08-05 10:12 141次 阅读
简析单片机中的高阻态

Stm32学了好久了,感觉独立做项目还是有力不从心的感觉?

虽说做底层本身确实要复杂一些,底层软件工程师的成长周期确实要长一点。但我始终还是认为,学习是讲究方法....
的头像 玩转单片机 发表于 08-05 10:09 237次 阅读
Stm32学了好久了,感觉独立做项目还是有力不从心的感觉?

基于单片机实现微波频率测量系统的设计

在通信系统中,频率测量具有重要地位。近几年来频率测量技术所覆盖的领域越来越广泛,测量精度越来越高,与....
发表于 08-05 09:29 81次 阅读
基于单片机实现微波频率测量系统的设计

可满足各种测试环境要求的多路信号源的设计

随着测试设备的飞速发展,其性能状况越来越受到人们的重视,经过一段时间要对测试设备进行检测。主测试板作....
的头像 电子设计 发表于 08-05 09:23 548次 阅读
可满足各种测试环境要求的多路信号源的设计

采用C8051F020单片机和模糊控制器实现便携式心电监护仪的应用方案

根据心电信号特征、生物信号处理系统和现代心电监护技术发展要求,本系统选用高速SOC系列单片机C805....
的头像 电子设计 发表于 08-05 08:30 351次 阅读
采用C8051F020单片机和模糊控制器实现便携式心电监护仪的应用方案

KD—49电子琴原理及维修实例详细说明

KD-49型电脑电子琴是比HLZ-4975电子琴早一些从国外引进的机种。这种电子琴在国内有多家工厂引....
发表于 08-05 08:00 35次 阅读
KD—49电子琴原理及维修实例详细说明

单片机采用浏览器进行监控将给软件的编程带来极大的便利

用一台计算机直接通过并口与单片机开发系统连接,程序用PWS(微软的个人Web服务器)进行调试,完成调....
发表于 08-04 19:53 207次 阅读
单片机采用浏览器进行监控将给软件的编程带来极大的便利

三极管在单片机中的应用图解

图 3-8 中,当 IO 口输出高电平 5V 时,三极管导通,OUT 输出低电平 0V,当 IO 口....
的头像 玩转单片机 发表于 08-04 17:22 259次 阅读
三极管在单片机中的应用图解

关于单片机程序跑飞死机的原因

若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量....
的头像 玩转单片机 发表于 08-04 17:13 181次 阅读
关于单片机程序跑飞死机的原因

晶振电路中选择电容的方式

单片机有内部时钟方式和外部时钟方式两种:(1)单片机的XTAL1和XTAL2内部有一片内振荡器结构,....
发表于 08-04 17:04 165次 阅读
晶振电路中选择电容的方式