STMCU小助手
发布时间:2023-3-10 10:50
|
前言 由于个人原因已经有好长时间没搞了,最近工作需要,但是拿起32基本上都忘记差不多了,接下来一段时间将急中学习一下STM32的基础知识。以前是学习的库函数版本,有一定的基础,因此这次入手准备直接从头开始学习寄存器版本的程序,有助于更加深的理解STM中对寄存器的操作。, k, W: V% e! C9 l9 r 2 m; R. Y2 p) N; h( Z0 Y0 H1 z 重新拿出开发板,感到既熟悉又陌生,这篇博客先说一下学习准备,接下来的博客会更新后续实验。, _, N7 b \7 p% ^& G5 N: |: s# m ! U: _% b4 n m# I$ F ) _/ d: w/ ~1 d6 h 学习方法* [( O I6 j' \1 L9 R8 a2 T6 u! h 一、学习准备 2.1 C语言基础 学习STM32前C语言必须得过关,否则对于代码的理解和32的学会很难。 , g# Y& v: a& n+ ^1 G/ r 2.2 开发环境的搭建. O8 `7 ^: Y [" T4 d 开发软件使用Keil uVision57 W- L- ^# v4 b7 X6 E 调试工具:JTAG、ST-LINK/V2: @8 h5 Z3 {" W' S 下载程序:可以直接使用调试工具下载,也可以使用串口下载,串口下载的时候需要用到串口助手# K6 K' j+ o5 m- X1 v7 V: ` 2.3 寄存器版本代码说明3 ]2 ]/ |+ ], a( w. K2 n' ~ 掌握库函数的基本配置方法。了解寄存器底层配置过程,以便深入了解STM32芯片本质。5 s2 T/ p/ A4 {0 W 4 S: p% m& a& \; n 二、参考的资料(文档) b3 U4 D3 D9 |6 ^6 ?" N/ Q; ] 芯片的内核(最底层):CM3/CM4权威指南(由ARM提供) 芯片参考手册(功能寄存器特性描述):STM32F1/F4中文参考手册(由ST提供)0 u m- R- M0 M" [ 芯片数据手册(芯片电气参数及引脚说明):STM32F407ZGT6/ Z. ?* l) r2 `' V* w, E3 w STM32F407开发指南—寄存器版本(这里使用的是正点原子的开发板)及其配套视频+ |* C x6 O1 ] 开发板原理图:Explorer STM32F4_Vxx_SCH.pdf" {& r @+ A9 R# s. G9 j+ N& } ST官方资料下载地址 , F \0 }, ^; E. `* ?% X 三、学习资源(硬件): [4 p5 d; ^9 r1 W8 C x1 U 这里使用的是正点原子的STM32F4系列的探索者开发板,这里将开发板硬件资源做一下简单介绍,其具体介绍再不完全 手册前两章有详细介绍。大家做好也看一下。 & x" K" Z" Y Y6 {" a6 o
ALIENTEK 探索者 STM32F4 开发板板载主要资源如下: ◆ CPU: STM32F407ZGT6, LQFP144, FLASH: 1024K=1M, SRAM: 192K; ◆ 外扩 SRAM: IS62WV51216, 1M 字节 ◆ 外扩 SPI FLASH: W25Q128, 16M 字节5 \2 p: u1 X( X( R* l ◆ 2 个状态指示灯(DS0:红色, DS1:绿色) ◆ 1 个红外接收头, 并配备一款小巧的红外遥控器6 p+ [0 |0 i* } z ◆ 1 个 EEPROM 芯片, 24C02,容量 256 字节( W& r6 L+ h$ a1 U4 @% }; ] ◆ 1 个六轴(陀螺仪+加速度) 传感器芯片, MPU6050 ◆ 1 个高性能音频编解码芯片, WM8978 ◆ 1 个 2.4G 无线模块接口,支持 NRF24L01 无线模块 ◆ 1 路 CAN 接口,采用 TJA1050 芯片0 V& J. j# t& A9 R* m6 d ◆ 1 路 485 接口,采用 SP3485 芯片+ d6 j& E( n% u$ I: \- t e ◆ 2 路 RS232 串口(一公一母) 接口,采用 SP3232 芯片- T# m! L i& ]# x' @( _* D; K ◆ 1 路单总线接口,支持 DS18B20/DHT11 等单总线传感器 ◆ 1 个 ATK 模块接口, 支持 ALIENTEK 蓝牙/GPS 模块 ◆ 1 个光敏传感器) |) l1 A. G+ t: y ◆ 1 个标准的 2.4/2.8/3.5/4.3/7 寸 LCD 接口,支持电阻/电容触摸屏; g: L, p/ E, \" [ ◆ 1 个摄像头模块接口1 f4 ^5 ^( j( V3 _8 L% |; N ◆ 1 个 OLED 模块接口 ◆ 1 个 USB 串口,可用于程序下载和代码调试(USMART 调试)# h# t6 n0 i$ U* e# R# l, | ◆ 1 个 USB SLAVE 接口,用于 USB 从机通信* }" a+ A$ Z. Q- i) Z ◆ 1 个 USB HOST(OTG)接口,用于 USB 主机通信 ◆ 1 个有源蜂鸣器 ◆ 1 个 RS232/RS485 选择接口 ◆ 1 个 RS232/模块选择接口* s/ U5 K3 l3 \ ◆ 1 个 CAN/USB 选择接口, M& ~3 d$ b5 Q) @) i ◆ 1 个串口选择接口 ◆ 1 个 SD 卡接口(在板子背面)1 p0 ]) m4 n' S/ f: _; D ◆ 1 个百兆以太网接口(RJ45)# ?0 d' M- {+ _$ d/ Q/ ` ◆ 1 个标准的 JTAG/SWD 调试下载口 ◆ 1 个录音头(MIC/咪头) ◆ 1 路立体声音频输出接口 ◆ 1 路立体声录音输入接口 ◆ 1 路扬声器输出接口,可接 1W 左右小喇叭) ]% V' i4 L/ `) G p# n ◆ 1 组多功能端口(DAC/ADC/PWM DAC/AUDIO IN/TPAD) ◆ 1 个参考电压设置接口 ◆ 1 个直流电源输入接口(输入电压范围: DC6~16V)0 \/ D# c# W3 x! Q3 E, V ◆ 1 个启动模式选择配置接口! q0 T& O5 X: G0 {$ e4 g% u ◆ 1 个 RTC 后备电池座,并带电池 ◆ 1 个复位按钮,可用于复位 MCU 和 LCD$ `; g/ ~9 b+ c ◆ 4 个功能按钮,其中 KEY_UP(即 WK_UP)兼具唤醒功能 ◆ 1 个电容触摸按键 ◆ 1 个电源开关,控制整个板的电源 ◆ 独创的一键下载功能( L1 ^3 |7 u( I9 J+ q" r8 }5 s2 ~* r ◆ 除晶振占用的 IO 口外,其余所有 IO 口全部引出, U3 R$ p) s( Y# _& ]% `( D( J ) a$ x; R) a8 U$ X STM32芯片学习内容 一、学习的内容" v3 F8 T0 \) k# C 芯片的初步了解 STM32F407用的是Cortex-M4内核,Cortex-M4采用的是ARMv7-ME架构* k, a, R7 L4 L( u* z Cortex-M4内核,增加浮点运算和增强的DSP处理指令- S3 N/ Q2 x, p4 l) M 168MHz高速运行时210DMIPS的处理能力! Q6 ~3 I+ S. D& |2 @$ Y( e% \8 Z 32位定时器(M3是16位的定时器) STM32家族:405.407.415.429.437, W0 |& s* n$ @! r/ q' a+ x6 H 二、基本资源 基本外设:GPIO输入输出、外部中段、定时器(中断)、串口 基本外设接口:串口、SPI、I2C、ADC/DAC、WDG、FSMC、SDIO等 高级系统功能:UCOS、FATFS、EMWIN等) Z2 W8 P% r! U: D4 Z 2.1 内核 32位 高性能ARM Cortex-M4处理器* J! h1 {4 x* A9 R- ^) v7 d. y 时钟:168M 支持FPU(浮点运算)和DSP指令. | I5 z/ q. A ' A- x" U3 W1 u |$ ~$ T 2.2 IO口 e$ ]1 P6 g/ _; c STM32F4007ZGT6:144引脚 114个IO* h2 q! ?, ~3 s/ |2 `4 i' r; }4 v( z 大部分都支持5V(数据手册中FT的都支持,模拟通道不支持) 支持调试:SWD和JTAG,SWD只要2条数据线 2.3 存储容量: p9 S( ?9 s: W/ I 1024k flash 192 SRAM5 i: J+ X1 b& K8 Q& N+ ]: m) \ 2.4 时钟和电源管理 1.8v~3.6v电源和IO电压 上电/掉电复位、可编程的电压监控6 p8 w+ [' V6 y6 i% @) { 强大的时钟系统% [) m+ |( H5 Z% B+ q5 w" N4 S 4~26M的外部高速晶振9 R% q& f; E# V% L5 C4 r/ n 内部16MHz的高速RC振荡器$ g6 U8 k/ O6 U- O) T 内部32KHz低速RC振荡器,看门狗0 f; x/ w9 G+ c! f( h E2 o% q 内部锁相环(PLL,倍频),一般系统时钟都是外部或内部高速时钟经过PLL倍频后得到 外部低速32.768K的晶振,主要做RTC时钟源" c- O$ g$ J0 j/ U% Q- f 2.5 低功耗 睡眠,停止和待机三种低功耗模式 可用电池为RTC和备份寄存器供电, I- j9 P- | t 2.6 AD、DA% {( X' q5 F5 M; U2 m) e* v 3个12位AD[24个外部测量通道] 内部通道可用于内部温度测量 内置参考电压' L/ E+ g# s* E# K# S$ Y" H
7 U; \1 y" G) Z4 d& s- N1 \ 2个12位DA/ S) n5 T1 [5 V 2.7 DMA 16个DMA通道,带FIFO和突发支持 + [. Q/ W3 N5 n5 n' O 支持外设:定时器,ADC,DAC,SDIO,I2S,SPI,I2C,USART" P8 H1 i/ ?$ M- N- u 8 P. h. B( I& \/ @5 U 2.8 定时器 17个定时器; \& K! f8 ~0 b( i3 g; r6 O 10个通用定时器(TIM2和TIM5是32位)、2个基本定时器、2个高级定时器、1个系统定时器、2个看门狗定时器 5 T) a: B! J" z) h8 p, _/ q 2.9 通信接口# F a4 {& V% [7 O. d9 z8 _+ X8 C 17个通信接口 3个I2C接口、6个USART(串口)、3个SPI接口、2个CAN2.0接口、2个USB OTG、1个SDIO 8 R$ x2 ^( q) `' Y8 h2 m 总结$ o! d' b8 c/ v) }+ t2 k( Q 目前就先准备这么多,之后随着学习后面的学习博客也会随之更新。 ———————————————— 版权声明:追逐者-桥 " U/ d9 d! e: i: w! ~* E1 t3 B $ o% F+ E% G) s6 f! [ Q |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版