首页 > 其他分享 >STM32学习记录(一):STM32概述

STM32学习记录(一):STM32概述

时间:2024-08-05 14:09:41浏览次数:15  
标签:插件 Code Keil 记录 ST STM32 概述 https

STM32F10x系统结构图

STM32F10x的系统结构图如下[1]

image

框图中名词解释,按A~Z的顺序排列:

  • AHB(Advanced High performance Bus):先进高性能总线
  • APB(Advanced Peripheral Bus):先进外设总线
  • ADC(Analog-to-Digital Converter):模拟/数字转换器
  • BKP(Backup registers):备份寄存器
  • CAN(Controller Area Network):控制器局域网
  • DAC(Digital-to-Analog Converter):数字/模拟转换器
  • DCode (Data Code):数据总线
  • DMA(Direct Memory Access):存储器直接访问
  • Flash(Flash Memory):闪存
  • FSMC(Flexible Static Memory Controller):可变静态存储控制器
  • GPIO(General-purpose input/output):通用输入输出
  • ICode (Insurtcution Code):指令总线
  • I2C(Inter-Integrated Circuit):集成电路总线
  • IWDG(Independent watchdog):独立看门狗
  • NVIC(Nested Vectored Interrupt Controller):嵌套向量中断控制器
  • RCC(Reset Clock Controller):复位时钟控制器
  • RTC(Real-time clock):实时时钟
  • System:系统总线
  • SRAM(Static Random-Access Memory):静态随机存取存储器
  • SDIO(Secure Digital Input and Output):安全数字输入和输出接口
  • SPI(Serial Peripheral Interface):串行外围设备接口
  • TIM(Timer):定时器
  • USART(Universal Synchronous Asynchronous Receiver/Transmitter):通用同步异步收发器
  • USB(Universal Serial Bus):通用串行总线
  • WWDG(Window watchdog):窗口看门狗

Cortex-M3处理器内部有3个外设:[2]

  1. Nested vectored interrupt controller(NVIC),嵌套向量中断控制器(NVIC)是一种支持低延迟中断处理的嵌入式中断控制器。
  2. System control block(SCB),系统控制块(SCB)是处理器的程序员模型接口。它提供系统实现信息和系统控制,包括系统异常的配置、控制和报告。
  3. System timer(SysTick),系统定时器SysTick是一个24位向下计数的定时器。可以用作实时操作系统(RTOS)的滴答计时器或简单的计数器。

STM32F10x时钟树

参考另一篇博客:https://www.cnblogs.com/qianxiaohan/p/18278597

配置STM32编程环境

单片机型号: STM32F103C8T6

编程环境:

​ Keil μVision V5.24.2

​ VS Code 1.92

调试器Debugger: ST-Link V2

程序下载工具:STM32 ST-LINK Utility或Keil集成的程序下载工具

配置Keil环境

  1. 安装Keil MDK
  2. 安装芯片支持包,例如STM32F10x系列,双击Keil.STM32F1xx_DFP.2.2.0.pack即可安装
  3. 使用注册机pojie软件

安装Keil MDK过程可参考:https://www.cnblogs.com/tb-chen/p/18079328

标准库

Keil 与 VS Code搭配使用

有两种方式:

  • 安装插件Keil Assistant,这个插件很方便,实际上就是把VS Code当做一个编辑器来用,VS Code的插件会调用Keil,将Keil的输出结果显示到VS Code的控制台。
  • Arm官方提供了VS Code插件,安装Arm官方提供的插件Arm Keil Studio Pack (MDK v6),我没有测试过。

Keil Assistant插件的安装以及使用教程:GitHub - github0null/keil-assistant

需要注意的是,比如要在项目的某文件夹下添加文件,需要在Keil中使用Manage Project Items选项将文件添加进项目中再编译项目,才不会出错。

创建项目

两种创建项目的方式:

程序下载

在STM32F10xxx中,有3中引导模式:

image

BOOT1和BOOT0都接低电平,配置为从Flash Memory启动,网上买的最小系统板默认是从STM32中的Flash Memory中启动。

将编译后的程序下载到flash memory中,常见的Debugger有ST-Link,J-Link,CMSIS-DAP等等。ST-Link调试器参考:https://blog.csdn.net/qq_52102933/article/details/126830904,ST-Link也可使用STM32 ST-LINK Utility软件烧录HEX文件到单片机中。

HAL库

等待后续更新。。。

资料下载

标准库官网下载:https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html

STM32F103系列文档下载:https://www.st.com.cn/zh/microcontrollers-microprocessors/stm32f103/documentation.html

Keil MDK(含注册机、支持包)下载:https://pan.baidu.com/s/1l0RHFE2BJziakhdwaNUeUA?pwd=1234 提取码:1234

keil官网支持包下载:https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/boards/


  1. 《STM32F10x参考手册》:3.1 System architecture ↩︎

  2. 《Coterx-M3编程手册》:1.3.4 Cortex®-M3 core peripherals ↩︎

标签:插件,Code,Keil,记录,ST,STM32,概述,https
From: https://www.cnblogs.com/qianxiaohan/p/18343073

相关文章

  • Endless Wander(漫无止境)手游攻略个人总结记录(有空更新)
    "AmysteriousPortalsealedforyearsreopens,offeringachanceforNovutosavehissistertrappedinsideandtorebuildtheWanderer'sGuild."EndlessWanderisanofflineroguelikeRPGinapixelartstyle.Itfeaturessatisfyingandch......
  • STM32之GPIO(General Purpose Input/Output,通用型输入输出)
    文章目录前言一、GPIO简介二、GPIO结构2.1GPIO基本结构2.2GPIO位结构2.2.1输入部分2.2.1输出部分四、GPIO模式4.1浮空/上拉/下拉输入4.2模拟输入4.3开漏/推挽输出4.4复用开漏/推挽输出前言提示:本文主要用作在学习江协科大STM32入门教程后做的归纳总结笔......
  • Codeforces Round 963 (Div. 2) 补题记录(A~D,F1)
    不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.不会做F1.A直接计算每一个选项最多对多少个题加起......
  • 基于stm32f103c8t6的蓝牙小车(可以控制车速,以及有数码管显示速度)
    蓝牙模块的理解:蓝牙可以理解为一个无线的串口,手机和单片机之间可以通过蓝牙来发送数据,控制单片机IO口,进而来控制小车,总体的逻辑是,手机发送数据给蓝牙,蓝牙将这个数据再发送给单片机。另外蓝牙的代码跟我们学的串口通信差不多。usart2.c#include"usart2.h" voiduart......
  • wsl docker里运行ollama并使用nvidia gpu的一些记录
     1、安装wsl2具体过程网上一搜一把,这里就先略过了,只有wsl2能用哈2、wsl里装docker,及相关配置装dockerwget https://download.docker.com/linux/static/stable/aarch64/docker-23.0.6.tgzcd/mydata/tmp/tar -zxvf docker-23.0.6.tgzmvdocker/*/usr/bin/mvdock......
  • iMAP: Implicit Mapping and Positioning in Real-Time实时隐式建图和定位(论文阅读记
    一、论文阅读知识储备    这篇论文是将NeRF结合进SLAM的探索性的尝试,在我的这篇文章中并没有太多涉及NeRF的详细解说,但看懂这篇论文有必须懂NeRF,所以推荐读者去看:【较真系列】讲人话-NeRF全解(原理+代码+公式)_哔哩哔哩_bilibili       论文原文地址:[2103.12352......
  • WIN10使用记录
     一、win10任务栏任务缩略图变列表运行中输入regedit,打开注册表编辑器。 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband在右侧窗口中找到NumThumbnails,如果没有的话也要手工新建一个Dword(32位)值,把其命名为NumThumbnails,双击NumThumbnail......
  • STM32H7 HAL库CubeMX 双重ADC模式同步采样详细配置+FFT计算相位差
    前言在电赛备赛期间琢磨了一下ADC同步采样的实现方式,本来是打算直接用AD7606来着,但是搞了半天也没把驱动整出来...考虑到AD7606本身采样率也拉不到太高,于是就花了几天时间把片上ADC配出来了。查资料的时候我发现关于STM32双重ADC模式的资料是真的少,用FFT算两路信号相位差的实例代......
  • STM32Cubemx在FreeRTOS中使用面向对象的方式使用串口
    文章目录前言一、创建FreeRTOS工程二、创建文件对串口进行封装三、代码编写总结前言本篇文章将带大家来学习使用面向对象的方式在FreeRTOS中使用串口,使用面向对象的方法非常适合编写可移植性强的代码,那么这篇文章就带大家来看一下这个代码要怎么写。一、创建FreeRT......
  • 360T7M的固件刷机全程记录
    配置:Gigadevice闪存,Openwrt官方说明里这个型号闪存存在变砖风险,为求稳使用immortal改版固件。参考:https://openwrt.org/toh/qihoo/360t7_1.0固件:https://www.right.com.cn/forum/thread-8263340-1-1.htmlUboot:主要流程:拆外壳,焊接ttl官方固件降级低版本启动串口调试,出现提......