STM32从入门到精通_stm36从零到精通(1)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

在画原理图之前,一般的做法是先把引脚分类好,然后才开始画原理图,引脚分类具体见表格。

引脚分类引脚说明
电源(VBAT)、(VDD VSS)、(VDDA VSSA)、(VREF+ VREF-)等
晶振IO主晶振IO,RTC晶振IO
下载IO用于JTAG下载的IO:JTMS、JTCK、JTDI、JTDO、NJTRST
BOOT IOBOOT0、BOOT1,用于设置系统的启动方式
复位IONRST,用于外部复位
GPIO专用器件接到专用的总线,比如I2C,SPI,SDIO,FSMC,DCMI这些总线的器件需要接到专用的IO

1.4 如何寻找IO的功能说明

要想根据功能来分配 IO,那就得先知道每个 IO 的功能说明,这个我们可以从官方的数据手册里面找到。在学习的时候,有两个官方资料我们会经常用到,一个是参考手册(英文叫 Reference manual),另外一个是数据手册(英文叫 Data Sheet)。两者的具体区别见表格。

这里写图片描述

二、寄存器开发和库开发

  • 对于STM32是用寄存器开发还是用库开发,一直备受争论,而寄存器开发和库开发都各有利弊,主要还是看开发者在项目中如何来权衡。下面用最基础的GPIO引脚配置来对比一些这两种开发方式的差异。

2.1 寄存器开发

  • 必备手册《STM32中文参考手册》
  • 寄存器开发让开发者知根知底,能够深入了解底层工作原理。
  • 寄存器开发代码执行效率更高,代码更加简洁。
int main(void)
{
	//开启 GPIOB 端口时钟
	RCC_APB2ENR |= (1<<3);
    //清空控制 PB0 的端口位
    GPIOB_CRL &= ~(0X0F << (4*0));
    //配置 PB0 为通用推挽输出,速度为10MHz
    GPIOB_CRL |= (1 << (4*0));
    // PB0 输出低电平
    GPIOB_ODR |= (0<<0);
    
    while(1);
}

2.2 库开发

  • 必备手册:《stm32F1xx_stdperiph_lib_um.chm》
  • 库开发使代码可读性增强,且符合CMSIS库标准便于移植。
  • 代码相对寄存器开发更加繁琐,执行效率没有寄存器高。
int main(void)
{
	// 定义一个 GPIO_InitTypeDef 类型的结构体
	GPIO_InitTypeDef GPIO_InitStructure;
	// 开启 GPIOB 端口时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	// 选择要控制的 GPIO 引脚
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	// 设置引脚模式为通用推挽输出
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	// 设置引脚速率为 10MHz
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
	// 调用库函数,初始化 GPIO 引脚
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	// 使引脚输出低电平
	GPIO_ResetBits(GPIOB, GPIO_Pin_0);
	
	while(1);
}

2.3 开发总结

  • 寄存器开发需要非常的细心,不然容易将寄存器配置错,建议初学者从寄存器开发开始学起,等自己对寄存器开发比较了解后,再转向库开发,正所谓:学从难处学,用从易处用
  • 针对需要变更MCU的项目开发还是建议选择库开发,可以节省项目开发的时间,便于产品的升级换代。

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

我V获取:vip1024c (备注嵌入式)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值