版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习STM32一、基本学习阶段:1.相关原则。2.主题要求,结构图,也许是为了实现想法3.熟悉相关库函数及其使用方法以及固件库驱动程序实例。编写实现特定功能的驱动程序。5.在现有项目上加载驱动程序文件、调试器。模拟波形以在物理上实现。其次,一些重要文件(文件夹)位置:固件库:嵌入式项目决赛现场资料STM32固件库v 3.5 STM32 F10 x _ STD phoh _ lib STM32 F10 x _ STD PAH _ lib _ v 3 . 5 . 0STM32F10x固件库中文解释: SCM技术实践-基于C51和STM32STM32相关数据STM32_CN.pdf参考手册:嵌入式项
2、目最终现场资源数据手册stm32f103rbt6.pdf:嵌入式项目决赛现场资源数据手册蓝桥杯嵌入式备赛手册:https:/blog . csdn . net/Zach _ z/article/details/8048423原理图文件:嵌入式项目决赛现场数据CT117E电路结构图。pdf总原理图如下所示6 STM32的LED指示灯6.1 GPIO基本原理6.1.1STM32的地址映射地址映射是将芯片上的存储或I/O等资源与地址建立一对一对应关系。如果地址与寄存器相对应,则可以使用c语言指针指定地址,并修改此地址的内容以修改寄存器的内容。Cortex-M3有32个地址行,因此寻址空间大小为2 3
3、2位=4 GB。ARM设计为预配置这些4 GB的寻址空间。为片上外围设备分配0x4000000到0x5 fffff (512mb)之间的地址。将片上外围设备的寄存器映射到此地址区域,即可轻松访问内存和访问这些外围设备的寄存器,从而控制外围设备的操作。这样片上外设可以用c语言工作。有关CM3内存映射,请参阅图。STM32f10x.h此文件的重要内容是将stm32的所有寄存器映射到地址。6.1.2总线外围设备STM32其他外围设备安装在其他总线上。6.1.3适用于STM32的时钟系统首先,让我们全面了解一下STM32的时钟系统。具体参照图片。STM32具有四个时间源:(1)高速外部时钟(HSE):
4、使用外部正弦作为时间表,正弦频率是4-16 MHz范围内的所需频率,我们通常使用8 MHz正弦。2)高速内部时钟(HSI):由内部RC振荡器产生,频率为8 MHz,但不稳定。3)低速外部时钟(LSE):使用外部正弦作为分贝源,主要在实时时钟模块上提供,通常使用32.768 kHz。4)低速率内部时钟(LSI):由内部RC振荡器生成,主要提供给40 kHz频率的实时时钟模块。让我们以最常用的高速度外部锁定(HSE)为例进行分析。首先,假设外部提供的晶体频率为8MHz。从原理图来看,外部正震为8MHz。(1)从左端的OSC_OUT和OSC_IN开始,两个接脚分别连接至外部结晶的两端。(2)8 MH
5、z时钟遇到了第一个分频器PLLXTPRE(HSE divider for PLL entry),可以通过寄存器配置选择其输出。输出时钟可以是输入时钟的降级或降级。我们通常不以分频器为基础,因此经过PLLXTPRE后,仍然是8MHz时钟。(3)在8MHz时钟上遇到PLL src开关时,可以选择输出为外部高速时钟(HSE)或内部高速时钟(HSI)。在这里,选择输出为HSE,然后遇到PLL。倍频作用。您可以在此输入pllmultiplication factor。通过锁相环的时钟称为PLLCLK。倍增器系数我们设定为9倍频。也就是说,经过PLL后,我们的手表从原来的8MHz HSE变为72 MHz
6、PLLCLK。(4)然后出现了另一个交换机软件。此开关后是STM32系统时钟(SYSCLK)。通过此交换机可以切换SYSCLK的时间源,您可以从中选择HSI、PLLCLK或HSE。由于选择了PLLCLK时钟,因此SYSCLK为72 MHz。(5)PLLCLK还流向USB自由分频器,在输入到SW之前输出到USB外围设备的时钟(USB clk)。6)返回SYSCLK,SYSCLK将经过AHB预分频器,然后重新输入到其他外围设备。输出到称为HCLK、FCLK的时钟时,还直接输出到SDIO外围设备的SDIOCLK时钟、存储控制器FSMC的FSMCCLK时钟,以及作为APB1和APB2的预失真的输入端。
7、在此示例中,AHB预防程序将禁用预防程序。也就是说,输出的频率是72 MHz。(7)GPIO外围设备安装在APB2总线上,APB2上的时钟是APB2预分配器的输出,APB2预分配器上的时钟源是AHB预分配器。因此,如果将APB2预定义器设置为分频器,则GPIO外围设备的时钟也可能与HCLK(72 MHz)相同。通过对表树的分析,可以看到,一系列的倍频,分频后,得到了几个与我们的开发密切相关的表。(1)SYSCLK: STM32系统时钟,大多数设备的时钟源,主要由AHB previsor分配给各个部件。(2)HCLK:由AHB预设计器直接输出并提供给内存、DMA和Cortex内核的高速总线AHB
8、的时钟信号,CPU时钟速度与STM32的计算速度、数据访问速度密切相关的Cortex内核的时钟。(3)PCLK1:从APB1预分配装置输出的外围设备时钟,最大频率为36MHz,适用于APB1总线上安装的外围设备。(4)PCLK2: APB2预分配器输出的周边时钟,最大频率为72 MHz,适用于APB2汇流排挂载的周边装置。6.2功能和结构实施6.2.1实施功能关闭所有指示灯,使两个指示灯交替闪烁。6.2.2 LED硬件连接6.3固件库驱动程序实例和函数详细信息从固件库的“project-STM 32 F10 x _ STD PAH _ examples-gpio-io toggle”文件夹中打
9、开“main.c”默认情况下,它包含所有LED初始化驱动程序所需的代码,可以直接复制,更改其针脚和映射以创建时钟。首先定义结构类型变量GPIO_InitStructure。然后调用库函数RCC_APB2PeriphClockCmd()打开时钟。默认情况下,外围设备时钟关闭。因此,外围设备时钟通常设置为初始化外围设备时打开(根据设计产品电源要求,使用时也不会打开)。参考固件库函数STM32F10x固件库中文解释: SCM技术实践-基于C51和STM32STM32相关数据调用时必须输入两个参数。一个参数是在要控制的APB2总线上装载的外围时钟,第二个参数是选择打开还是关闭时钟。如果使用I/O的针多
10、路复用,则多路复用功能时钟也将打开。如果GPIOB的Pin0可用作ADC1的输入针脚,则现在使用它作为ADC1,不仅打开GPIOB时钟,还打开广告C1的时钟,如下所示:RCC _ apb2 periphclockcmd(RCC _ apb2 per iph _ gpiob | RCC _ apb2 per iph _ ADC 1,enable);打开参考固件库函数STM32F10x固件库中文解释,继续查找初始化函数:填充核心成员,然后调用GPIO初始化函数GPIO_Init()。调用函数之前,有以下过程:1 GPIO_InitStructure。将值分配给GPIO_Pin结构成员。GPIO的G
11、PIO_InitStructure(如果有多个GPIO集)。指定GPIO_Pin的值并指定该值后,调用GPIO_Init()函数初始化一次。2)为GPIO_Mode指定值,如果驱动LED,则指定GPIO_Mode_Out_PP,将其设置为通用推式推式拉式模式。3)将值分配给GPIO_Speed,或者在输出模式下,速度通常设置为GPIO_Speed_50MHz,宏指示插针的最大输出速度为50MHz,而在输入模式下,无需设置GPIO_Speed的值。分为四种输入模式:顶拉动输入模式、下拉输入模式、浮动输入模式和模拟输入模式。模拟输入模式(GPIO_Mode_AIN)、无连接、下降电阻、通过其他线路
12、将电压信号发送到片上外设模块。传输到ADC模块时,ADC收集电压信号。因此,使用ADC外围设备时,应将其设置为模拟输入模式。推拉输出模式、泄漏输出模式、多路复用推拉输出模式和多路复用泄漏输出模式四种输出模式。推拉输出模式根据工作方法命名。两个管子交替传导,一个负责充电电流,一个负责拉动电流,使其负载能力和开关速度都比一般方式大幅度提高。推拉输出的低水平为0伏,高水平为3.3伏。在泄漏输出模式中,控制输出为0,接地输出,控制输出为1,则处于高电阻状态。为了正常使用,必须连接一个外部电阻器。如图所示。典型的推拉输出模式通常用于输出级别为0和3.3伏特的情况。另一方面,常规泄漏输出模式通常用于电平不
13、匹配。也就是说,如果需要输出5伏的较高水平,则必须将外部1个上部电阻器、电源5伏、GPIO设置为打开泄漏模式,如果输出高电阻状态较高,则必须从上部拉电阻和电源向外输出5伏的水平。必须根据电路图增加时钟GPIOC,通过推拉输出增加GPIO_Pin_8到GPIO_Pin_15设置。设置pin高或低级别的函数在keil左侧的Project中查找“stm32f10x_gpio.h”,转到文件底部,找到GPIO_SetBits()控制输出高级别,GPIO_ResetBits()控制输出低6.4驱动程序文件创建注意事项比赛的时候,有机会的时候可以提前写一些驱动器代码,但是如果不能用纸条写中文笔记,很容易导
14、致乱码。保存时选择所有类型* *。评分引擎的情况是用机器评分,只看现象,根据现象直接评分,不看代码。6.4.1编写main函数文件名为main_led.c,可以直接复制到项目中。/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *文件名:LED闪烁控制*实验目的:1。确定如何配置外围设备时钟* 2 .了解STM32处理器GPIO的工作原理*程序说明:使用程序之前,请确保通过跳线正确连接与LED相关的针脚。*实施功能:关闭所有指示灯,使两个指示灯交替闪烁。*日期版本:2
15、019-4-12/V1.0a* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */* includes - includes-*/#include stm32f10x.h #include led.h /如果有此词组,led.h文档将自动加载到项目中,并且所有.无需用户手动添加h文件/* private typedef - */* private define - */* private macro - */* private variables - */* private function prototypes - */* private functions - */* *描述* 主函数* 参数None* 返回值为None*/Int main(void)unsigned int I;LED _ Init();L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 顾客优先服务贴心满意保证承诺书8篇
- 售后服务进度催办函(7篇)
- 诚信助困服务承诺书(6篇)
- 图形的相似 第1课时 相似图形 教学设计(2025-2026学年人教版数学九年级下册)
- 业务需求分析标准化模板
- 产品功能需求文档编写框架模板
- 环境管理专员废弃物分类与处理指南
- 产品质量检查与评估标准化工具
- 学校教育保障承诺书9篇范文
- 采购环节责任承诺书(5篇)
- 学校心理健康教育整改措施
- GB/T 15934-2024电器附件电线组件和互连电线组件
- 2019年广西桂林市中考数学试卷
- 三月的桃花心中开混声合唱谱
- 智慧路灯综合解决方案
- 《大学生心理健康》教案-自我意识课件
- 500字作文标准稿纸A4打印模板-直接打印
- 生物化学英文版课件:Chapter 6 Enzyme catalysis
- 23J916-1:住宅排气道(一)
- 慢性病健康管理规范
- 检验检测机构质量手册程序文件质量记录合集(依据2023年版评审准则)
评论
0/150
提交评论