完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先对于STM32的入门来说,我推荐大家去看野火,和正点原子的教学视频,没学过51的和基础比较差的同学先从野火的教学视频看,底子好的同学看正点原子的教学视频。
基础扎不扎实是相对于,你是否理解处理器的基本架构,内存映射,寄存器映射,底层外设的基本知识,比如:GPIO、串口、DMA、定时器…等等。他们很多的教学资产都是免费获取的,对于刚开始学习的小伙伴可是太友好了~ 如果有同学找不到资源,可以在博客下方评论留言,我在第一时间为你充当学习的传送门哦~ 进入今天的主题-寄存器版-操作GPIO的输出-控制LED灯 1、GPIO简介 GPIO(General Purpose Input Output,通用输入输出接口)是MCU与外部电路和设备连接的基本外设。也就是常说的端口或管脚。 STM32F103的GPIO的特点如下: 复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。 所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活也可以被断开。 可以以推挽模式或开漏模式使用输出驱动器。 当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。 输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。 每个GPIO都可以作为外部中断/唤醒线。 复用功能:使用默认复用功能前必须对端口位配置寄存器编程。 软件重新映射I/O复用功能。 GPIO锁定机制。 STM32F103有GPIOA、GPIOB、GPIOC、GPIOD和GPIOE五个16位通用接口,每个GPIO 端口有16个口线对应16个管脚。 GPIO端口的每个位可以根据不同的功能,由软件分别配置成八种模式: 输入浮空:用于不确定高低电平的输入。 输入上拉:用于默认为上拉至高电平的输入。 输入下拉:用于默认为下拉至低电平的输入。 模拟输入:用于模拟量的输入。 开漏输出:用于实现电平转换和线与功能的输出。 推挽式输出:用于较大功率驱动的输出。 推挽式复用功能:复用功能情况下的推挽输出。 开漏复用功能:复用功能情况下的开漏输出。 GPIO输出初始化顺序 1、开LED相关的GPIO端口时钟 2、选定具体的GPIO 3、配置GPIO工作模式(CRL和CRH寄存器) 4、控制GPIO输出高低电平(ODR、BRR和BSRR) int main(void) { // 开启GPIOB 端口时钟 RCC_APB2ENR |= (1<<3); //清空控制PB0的端口位 GPIOB_CRL &= ~( 0x0F<< (4*0)); // 配置PB0为通用推挽输出,速度为10M GPIOB_CRL |= (1<<4*0); // PB0 输出 低电平 GPIOB_ODR &= ~(1<<0); while(1); } 如果大家觉得实验中一些寄存器的配置不是很明白,大家就拿出咱们吃饭的家伙数据手册来把实验中出现的寄存器在手册中查找,去理解。 |
|
|
|
只有小组成员才能发言,加入小组>>
3314 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9059 浏览 16 评论
4088 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 03:09 , Processed in 2.076294 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号