Day 4

Day 4

一.什么是单片机

单片机(Single - Chip Microcomputer)单片机微型计算机,是一种集成电路芯片,把具有数据处理能力的中央处理器 CPU、随机存储器 RAM、闪存 flash、多种 I/O 口和中断系统、定时器 / 计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

架构:

image-20250624151021957

特点:体积小,功耗低,集成度高,使用方便,扩展灵活

二.Cortex-M系列介绍

2.2 Cortex-M 系列介绍

2.2.1 ARM 公司与 ST 公司

ARM 公司:只做内核设计和 IP 授权,不参与芯片设计。
ST 公司:拿到 ARM 公司授权后,进行芯片设计。类似的公司还有华为、高通、NXP 等。

2.2.2 ARM 内核系列

A 系列:Application 缩写。高性能应用,比如:手机、电脑、电视等。
R 系列:Real-time 缩写。实时性强,汽车电子、军工、无线基带等。
M 系列:Microcontroller 缩写。超低功耗,工控、消费电子、家电、医疗器械等。
性能由高到低,时钟频率由高到低。

2.2.3 STM32 命名规则

ST-- 意法半导体
M–Microelectronics 微电子
32-- 总线宽度

我们用的上官二号开发板使用的是STM32F103C8T6

image-20250624151759357

三.关于数据手册

3.1关于数据手册

ST官网:www.ST.com 在ST官网搜索芯片型号,然后下载手册

万能的某宝详情页白嫖 万能的某度

3.2如何阅读数据手册

image-20250624164944044

两个里选一个 重点关注引脚定义

image-20250624165058236

四.嵌入式硬件基础

4.1 认识上官二号核心板(核心板)

  • 主控芯片: STM32F103C8T6
  • 高速晶振: 8M
  • 低速晶振: 32.768k
  • LED: 5 颗
  • KEY: 3 个
项目介绍
内核Cortex-M3
Flash64K x 8bit
SRAM20K x 8bit
GPIO37 个 GPIO,分别为 PA0 - PA15、PB0 - PB15、PC13 - PC15、PD0 - PD1
ADC2 个 12bit ADC 合计 12 路通道,外部通道: PA0 到 PA7 + PB0 到 PB1 内部通道:温度传感器通道 ADC_Channel_16 和内部参考电压通道 ADC_Channel_17
定时器 / 计数器4 个 16bit 定时器 / 计数器,分别为 TIM1、TIM2、TIM3、TIM4,TIM1 带死区插入,常用于产生 PWM 控制电机
看门狗定时器2 个看门狗定时器 (独立看门狗 WDG、窗口看门狗 WWDG)
滴答定时器1 个 24bit 向下计数的滴答定时器 systick
工作电压、温度2V - 3.6V、-40°C - 85°C
通信串口2 * IIC,2 * SPI,3 * USART,1 * CAN
系统时钟内部 8MHz 时钟 HSI 最高可倍频到 64MHz,外部 8MHZ 时钟 HSE 最高可倍频到 72MHZ

4.2 STM32F103C8T6引脚分布

  • 电源引脚
    基本以字母 V 开头,比如 VDD/VSS、VDDA/VSSA、VREF+/VREF-、VBAT 等。
    VDD/VSS:数字部分电源正 / 负引脚,为 STM32 供电。
    VDDA/VSSA:模拟部分电源正 / 负引脚,为内部模拟部分供电。
    VREF+/VREF-:为 ADC/DAC 提供参考电压,100 脚以上的型号才有这两个脚。
    VBAT:RTC / 后备区域供电引脚。
  • 晶振引脚
    一共两组:OSC_IN/OSC/OUT、OSC_IN32/OSC_OUT32。
    OSC_IN/OSC/OUT:外部 HSE 晶振引脚(高速),用于给 STM32 提供高精度系统时钟。
    OSC_IN32/OSC_OUT32:外部 LSE 晶振引脚(低速),用于给 STM32 内部 RTC 提供晶振。
    内部晶振:HSI、LSI
  • 复位引脚
    只有一个:NRST
    用于复位 STM32,低电平有效。
  • image-20250624233038549

只能下载程序,无法调试

BOOT引脚

BOOT0 和 BOOT1

4.3STM32最小系统

单片机最小系统是指能够将单片机芯片运行所必需的最少的硬件电路集成在一起的系统。
它是一种基本的单片机应用系统,通常由主芯片,时钟电路,复位电路,电源电路,BOOT 启动电路,程序下载电路,扩展接口组成,为单片机提供时钟信号、复位信号以及外设接口等必要功能。

image-20250625102513184

STM32 中的晶振是一个非常重要的组成部分,它为整个系统提供了一个稳定的时钟源。具体来说,晶振在 STM32 中的作用如下:

  1. 提供时钟信号:晶振是一个振荡器,它会产生连续的脉冲信号,这些信号的频率非常稳定。STM32 微控制器中的 CPU 和其他外围设备需要一个稳定的时钟信号来协调它们的工作。因此,晶振为整个系统提供了一个可靠的时钟源,使得各个模块能够以相同的频率工作,从而保证系统的稳定性和准确性。
  2. 决定 CPU 的工作速度:晶振的频率决定了 CPU 的工作速度。频率越高,CPU 的执行速度就越快;反之,频率越低,CPU 的执行速度就越慢。因此,根据实际需求选择合适的晶振,可以确保系统在满足性能要求的同时,不会造成不必要的功耗浪费。
  3. 确保外围设备的正常工作:除了 CPU 之外,系统中还有很多其他的外围设备,如串口、定时器、ADC 等。这些外围设备也需要时钟信号来进行工作。晶振提供的时钟信号可以确保这些外围设备正常、准确地工作。
  4. 解决电磁兼容性问题:一些外围设备在工作时可能会产生电磁干扰,这些干扰可能会影响系统的稳定性。而晶振产生的时钟信号是高度稳定的,因此使用晶振可以减少由于电磁干扰导致的系统误差或故障。

综上所述,晶振在 STM32 微控制器中起着非常重要的作用。它不仅为整个系统提供了一个稳定的时钟源,还决定了 CPU 的工作速度和外围设备的正常工作。因此,选择合适的晶振对于保证系统的稳定性和准确性至关重要。

4.4电路基础知识

上拉、下拉电阻

image-20250625103855613

比如:对这个LED灯来讲,要用上拉电阻 因为上拉电阻导通输出3.3V 如果用下拉(导通输出0v),将会导致LED灯常量

电容:电容常起滤波作用,又叫滤波电容

电感:通直流阻交流

电源:供电系统

image-20250625104158192

这是连接器,又叫做‘排针’

image-20250625104351926

DB9 和 USB接口

image-20250625104436644

这是按键/开关

image-20250625124701597

二极管 : 左边是发光二极管 用来做LED 右边是普通二极管 主要起保护作用 防止电流过大/过小

image-20250625124829521

引脚输出电压比VDD大 多余电流就会往上走 如果输出电压小于Vss 将会从下面往上补电流 因此可以

image-20250625130434021

这是三极管 可以理解为水龙头

image-20250625131746348

image-20250625134237808

如图可见,NPN(N型)三极管必须要高电平才能导通 PNP(P型)三极管必须要低电平才能导通

image-20250625134339129

稳压器件

image-20250625134410316

比如这个稳压器件,输入是5v可稳压到3.3v

各种门电路(不要看原理图,看符号)

image-20250625134525118

非门 :若输入1则 输出0 若输入0 则输出1

image-20250625134623166

与门:两个输入一次输出(两个条件都要满足)

image-20250625134701589

或门:两次输入 一次输出(只需要满足1个条件)

image-20250625134825860

异或门:两次输入一次输出(一样输出0 不一样shu’h’c)

4.5如何查看原理图

主线任务:

image-20250625163726101

电源电路:type-c (如下所示)

image-20250625164036387

VBUS通过右下角的开关,如果右下角开关1拨到3,此时VBUS将会开始主动供电,提供5V的电压

F1:保险丝

DR1:瞬态抑制二极管

瞬态抑制二极管是一种过压保护器件,在电路中主要起以下作用:

  • 快速响应:当电路中出现瞬间的高电压脉冲(比如静电放电、雷击感应、电源切换时的浪涌等),TVS 能在极短的时间(纳秒级)内从高阻状态变为低阻状态。

  • 钳位电压:迅速导通后,TVS 会将电路中的电压钳制在一个相对安全的水平,避免过高的电压对电路中的其他敏感元件(如芯片、集成电路等)造成损坏。

这是一个稳压器,它可以输出3.3V的电压:

image-20250625170103054

这是几个引脚

image-20250625170220399

这是我们的芯片

image-20250625170400129

VDD,VDDA,VBAT都接到一起(3.3v)VDD_X是数字部分的电压VDDA是模拟部分的

VSS 全部接到了GND

这里没有VREF (100引脚以上才有)

复位电路(对应上图芯片中的NRST):

image-20250625173658550

按下SW3 给NRST一个低电平后即可复位 上方R8是上拉电阻

晶振电路:

image-20250625175056382

左边是8MHz高速晶振 右边是32.768K(频率1s)低速晶振(RTC专供)

image-20250625175140518

晶振主要接芯片中圈起来的引脚

下载电路

image-20250625175321594

只要用SWDIO和SWCLK两个接口 就可以下载

BOOT

image-20250625175423900

R12是下拉电阻,这里BOOT0默认电压将为0

GPIO口:

image-20250625175635108

按键电路

image-20250625175758109

这里的电阻是上拉电阻,默认3.3V

LED:

image-20250625175914248

总共五颗LED灯 右上角为常亮(电源指示灯)

image-20250625180054833

这两颗灯通过编程的方式亮灭

image-20250625180121680

这两颗灯接了串口二 一旦有信息通过就会亮

AT24C64芯片

image-20250625180202322

通过I2C进行通信 这个用于掉电储存(E2PROM)

五.开发环境搭建

5.1 官方安装包获取

5.1.1MDK5

在ST官网可获得官方安装包

5.1.2器件包

什么是器件包呢?由于ST公司生产了非常多的芯片,每颗芯片所需要的支持文件都不一样,这些文件组合起来就是器件包。

但有这么多芯片,他们不可能把所有的器件包都集成在MDK5里,否则MDK5的安装包将变得超级无敌巨大,很占空间也没必要。比较好的解决方案是:你需要用到什么芯片,就安装对应的器件包就可以了。

器件包也是在官网上可以下载到,直接搜索芯片名

5.2Cubemax安装

浏览器搜索即可进入官网,依据电脑版本选择

5.3为什么要安装CH340驱动

image-20250625234924003

由于两个电平不同,所以要安装CH340,进行电平转换

USB转TTL的RX和TX一定要交叉链接(RX-TX TX-RX)

两个作用:串口通信和下载程序

他们不可能把所有的器件包都集成在MDK5里,否则MDK5的安装包将变得超级无敌巨大,很占空间也没必要。比较好的解决方案是:你需要用到什么芯片,就安装对应的器件包就可以了。

器件包也是在官网上可以下载到,直接搜索芯片名

5.2Cubemax安装

浏览器搜索即可进入官网,依据电脑版本选择

5.3为什么要安装CH340驱动

[外链图片转存中…(img-tS0oLZuQ-1750868236467)]

由于两个电平不同,所以要安装CH340,进行电平转换

USB转TTL的RX和TX一定要交叉链接(RX-TX TX-RX)

两个作用:串口通信和下载程序

### 关于苍穹外卖项目第四天教程视频 对于特定项目的教程视频查询,尤其是像苍穹外卖这样的具体项目,在提供的参考资料中并未直接提及该项目及其对应的每日教程详情[^1][^2][^3]。 然而,通常这类系列教程会按照一定模式发布,例如每天更新一期视频来覆盖不同主题或功能模块。为了定位到苍穹外卖项目第4天的具体教程: - 可以访问官方文档或者课程平台主页查找是否有详细的日程安排表。 - 如果存在配套的学习社区或论坛,则可以尝试在那里询问其他学员是否记得当天的内容重点。 - 社交媒体平台上也可能有关于此项目的讨论群组,加入这些群体往往能更快获得帮助。 另外值得注意的是,许多在线教育平台都会提供完整的播放列表,其中包含了整个课程的所有章节,这样就可以轻松跳转至所需的那一部分进行观看学习。 ```python # 假设有一个函数可以从给定URL获取视频列表并返回指定日期的教学资源链接 def get_tutorial_video_url(project_name, day_number): base_url = "https://example.com/tutorials" full_path = f"{base_url}/{project_name}/day_{day_number}.mp4" return full_path if check_if_exists(full_path) else None # 使用示例 tutorial_day_4_link = get_tutorial_video_url('qingtian_takeout', 4) if tutorial_day_4_link: print(f"Day 4 tutorial available at {tutorial_day_4_link}") else: print("Could not find the requested tutorial.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值