付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、STM32运用总结主要分为IO 口,定时器的 PWM和QEI,屮断,ADC , DAC和DMA 介绍。在STM32的 运用屮第一步一般是使能相应模块的时钟,然后配置IO 口,最后配置相应的寄存器。1. IO 口STM32的IO 口非常多,而且与其它外设模块通常是复用的。在不同的外设屮IO 口的设置是不一样的。这一部分介绍普通的数值IO 口。IO 口有AG共7组,每组 16 口。1. IO 口在时钟总线A HB1上,使能对应端口的时钟。在寄存器RCC->AHB1ENR中。2. 配置IO 口的模式,普通的IO 口配置为普通的输入输出模式。配置I 0 口是悬空还是上拉或者下拉。以上两步分别在寄
2、存器GPIOx>MODER和GPIOx> PUPDR(x=A,B,C,D,E,F,G )3. 其中配置为输出模式时还要设置速度和相应的输出方式,开漏或者推挽,以上两步分别在寄存器 GPIOx -> OSPEEDR 和 GPIOx ->OTYPER (x=A,B,C,D,E,F,G )。4. 设置IO 口的高低电平。在寄存器GPIOx>BSRRH中置相应的位为1就是将相应的位置0,在寄存器 GPIOx ->BSRRL屮置相应的位为1就是将相应的位置 1另外 还可以设置GPIOx.ODR寄存器来设置输出电平以及读取GPIOx_IDR寄存器来获取输入电平。2. P
3、WMSTM32的定时器也非常Z多,用到的主要是两个部分:用定时器产生PWM和定时触发ADC ,这里一部分介绍 PWM o (高级定时器的配置和这差不多,由于在 STM32F103 里面已经尝试过在 STM32F407里面就没有再写)1. 配置IO 口。我们说过STM32的外设模块主要是和IO 口复用的,因此在使用外设模块时 首先配置好相应的IO 口。比如使用A 口的PA1作为定时器Timer2的PWM 输出。则应按照如下的步骤来配置PAlo1)使能A 口的时钟。在寄存器RCC->AHB1ENR中。2)配置PA1为复用功能。在寄存器GPIOA->MODER中。3)配置PA1的上拉下拉
4、或者悬空。在寄存器GPIOA->PUPDR中。4)酉己置PA1的速度。在 GPIOA>OSPEEDR中。5)配置PA1的复用功能是和Timer2对应的。在GPIOA->AFR0中。(相对应的复 用对应表数据手册上有)。2. 配置定时器模块1)使能相应的定时器模块时钟(注意不同的定时器在不同的时钟总线上)。Timer? 在APB1总线上。所以在RCC->APB1ENR中使能Timer2.2)设置定时器的预分频系数,周期值。在寄存器 TIMx ->PSC和TIMx>ARR屮设置(对应不同的寄存器x取不同的值,比如用Timer2 ,则x=2 )。3)软件产生一次更
5、新事件将刚才设置的值导入到周期寄存器中。在TIMx ->EGR中设置。4)使能自动重装载功能与否,使能相应的事件,配置计数方式。在TIMx ->CR1中设置。5)配置Timer2的捕获比较通道。共有四路捕获比较通道,我们这里用的是CC2通道。将CC2配置为输出比较模式( OC) , PWM2方式,预装载使能等。在TIMx >CCMR1 ( CC1/OC1 和 CC2/OC2 )和 TIMx >CCMR2 ( CC3/OC3 和 CC4/OC4 ).6)设置匹配值,用来控制占空比。在 TIMx>CCR2中。7)使能输出比较使能或者比较捕获功能。在TIMx>CC
6、ER中。8)清空计数值。TIMx ->CNT=O o9)使能计数。在TIMx ->CR1中。注意把这一项放在最后写,否者会由于寄存器之 间的互锁写保护产生一些问题。3. QEIQEI的使用主要是对照着数据手册上的说明来,具体没有什么多说的。程序里面有详细的注释。4. 中断系统STM32的中断主要设置中断优先级的配置,中断服务函数的命名,以及中断服务函数 的处理等几个方面。在STM32的中断系统中有抢占优先级和次占(响应)优先级的概念。其中数值越低代表优先级越高。高优先级的抢占可以打断低优先级的抢占。同优先级的抢占屮,不同的次占(响应)优先级不可以相互打断,次占(响应)只是表示同时发
7、生时先执行优先级高的次占。抢占优先级和次占(响应)优先级共占有4位,可以根据不同的设置来改变抢占优先级的次占(响应)优先级的位数,一个程序中抢占优先级的次占(响应)优先级的位数的设置只能有一次,且不能再改变。抢占优先级和次占(响应)优先级的配置之前要写入一个合适的序列才能实现配置。在SCB->AIRCR 寄存器中先写入0X05FA0000 ,然后根据下表中SCB->AIRCR10:8位数值的不同来配置抢占和次占(响应)的位数。例如 SCB->AIRCR =0x05FA0000 I 0x400 ,表示抢占 3为,次占(响应)1位。(10:&| |分割威拾占优先fit位单
8、iia优先檢也抢占优先齟馥«b611KXJCXIMnon*16ftOblOOR:5wa2OblOl网网144ObllOx-m2aObi 11noneI【7:411161. 配置相应的屮断优先级。首先要找到相应的屮断的IP号(即在启动文件中的入口地址,如下图所示第一个为0,依次往后面数即可,在数据手册上也给出来了)c然后在寄存器NVIC>IPn屮配置优先级,该寄存器共8位,其中低四位已被清0, 不给用户使用,我们使用的是高四位。比如DMA2 -Stream0的中断优先级配置:NVIC ->IP56=0xB0。OCIQIPPIL ppp 厂PL- #产彼只才尸处如* 产芦*“
9、女 CF.EE:呼丘ICEEZUKEIII 蓝FT巴EEE:Ha-3ss r = m 二一 霍""bff NEW它Km 口口 mL3r>口AQ&Q aQa 二 j e «-IQXXX T 龙匕匚 Hl 心_二»¥ 口円mu丄丄X3. 屮断服务函数的命名。在上图中的启动文件里面也可以看到相关屮断服务函数的命 名的规则。就将相应的名称抄写下来即可。若要改名字,则也要改动启动文件。4. 使能相应的屮断源使能位和NVIC与之对应的屮断使能位。 NVIC >ISER0:2共三个,每个32位,对应IP号从081的中断。比如 IP号为56
10、的在NVIC ->ISER1 的(56-32)位。5. 屮断服务函数的处理。进入屮断服务函数首要的任务是将不能硬件清除屮断标志位 的中断,清除其标志位。然后进行相应的处理,有必要关中断的要关中断。5. ADC对于ADC来说主要是按照老师的要求完成配置任务,在开发板上实现的是运用ADC1和ADC2两个AD转换器实现4个模拟量两个一组同时采集。没有滤波,定时釆样,采用DMA 方式传送数据。并采用 DA输出。所以这一部分介绍的内容较多,把 AD和DA 起介绍 了。1.配置ADC的IO 口。采用C 口的PC1,PC2,PC4,PC5作为4个模拟量的输入。所以使能C 口的时钟。在RCC->A
11、HB1ENR中。然后 配置这4个IO 口为模拟模式。在 GPIOC->MODER中。最后配置上拉下拉或者悬空,这里要选择悬空模式。在GPIOC->PUPDR 中配置。2.配置DAC的IO 口。采用A 口的PA4,PA5作为DAC的模拟输出。所以使能A 口的时钟。在RCCAHB1ENR中。然后 配置这两个10 口为模拟模式。在GPI0A->M0DER中。GPI0A->PUPDR 中配最后配置上拉下拉或者悬空,这里选择悬空。在 置。3.配置TIM2。使能TIM2的时钟。在RCC->APB1ENR屮。设置分频系数和周期。在TIM2->PSC和TIM2>ARR
12、中。产生更新事件,配置 TIM2向上计数,使能更新事件 配置PWM等。与(二)中的配置差不多。这里主要是运用TIM2的CC2通道事件来触发ADC转换。4. 配置ADCo首先使能ADC1和ADC2的时钟。在RCC->APB2ENR寄存器中。设置 ADC1 和ADC2的总共的转换路数,这里我们转换的是每个ADC个两路。在 ADCx->SQRl中设置(x=l,2 ) o配置每个ADC中每一通道转换的循序。在ADCx->SQRn (n=l,2,3,4)中设置。配置ADC的公共控制寄存器,主要是 ADC时钟的分频,DMA的工作方式, ADC1和ADC2的工作模式等。在ADC->C
13、CR寄存器中配置。配置采样周期。在ADCx->SMPRm (m=l,2)中设置。使能ADC的扫描模式。在ADCx->CRl中设置(扫描 模式是指转换完一个通道接着转化下一个通道)。使能ADC1的TIM2的CC2上升沿触发,使能DMA方式,而且给ADC1上电。同时不使能ADC2的外部触发方式(作为从 设备,由ADC1提供触发信号),但要使能ADC2的DMA方式,而且给ADC2 ±电。5. 配置DACo使能DAC的时钟。在RCC->APB1ENR寄存器中设置。使能DAC1和DAC2。 在DAC->CR屮配置。6. 配置DMAo使能DMA2时钟(我们用的就是DMA2
14、)。在RCC>AHB1ENR中配置。主 要配置外设地址,内存地址,传输数据的大小,外设数据的格式,内存数据的格式,内存地址递增模式,循环模式(即完成一次传输,内存地址重头开始放)。配置中断。7. 主要是针对DMA2_StreamO的配置,主要的说明前面的中断说明中提到过这里不再 说了。8. 使能定时器。9. 在中断服务函数中,将DMA从ADC1和ADC2数据寄存器中运送回来的数据赋给 DAC->DHR12R1 和 DAC->DHR12R2 中再输出。6. USART1. 使能IO 口时钟,RCC->AHBlENRo设置相应的端口为为复用功能(包括 TX和RX),其中TX
15、还要设置输出速度,上拉下来;RX只要设置为复用模式就可以不管了2. 使能 USART 时钟,RCC->APB1ENR。设置波特率,USARTx->BRR;设置 USARTx->CRl 寄存器,包括USART使能,发射使能,接受使能,发射中断,接收中断等。(按需求来配置)3. 在USARTx->SR寄存器中。查询TC位(或者TXE位,发送完成;当读取此位并有后续数据写入时自动清0,或者软件清0)和RXNE位(接收完成;读取数据,自动清0或者软件 清0)或者是中断处理。(要清除相应的屮断标志位,在USARTx->CR 1寄存器屮)4. 在使用DMA的时候要在USART
16、x>CR3中设置DMAT和DMAR位。 CC1S= ' 01' (TIMx_CCMRl register, TI1FP1 mapped on Til) CC2S= ' 01' (TIMx_CCMR2 register, TI2FP2 mapped on TI2) CC1P= 'O' , CC1NP= 'O' ,IC1F=' 0000' (TLMx_CCER register, TI1FP1 noninverted,TI1FP1=TI1) CC2P= 'O' ,CC2NP= 'O' ,IC2F=' 0000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流运输企业人力资源部年度工作计划总结
- 投资银行家职业发展与面试经验
- 文化创意企业审计岗工作内容概览
- 旅游行业市场总监的职责与面试准备
- 投诉处理流程中的沟通技巧培训
- 商业分析中的SWOT分析与案例
- 京东商城首席运营官的选拔与面试策略
- 化工企业综合管理部战略规划及实施步骤
- 医患良好关系英语作文
- 腾讯软件开发工程师面试全攻略
- 2026年南京铁道职业技术学院单招职业适应性考试题库及答案详解(各地真题)
- 2026年黑龙江农业职业技术学院单招职业技能考试题库附答案解析
- 2026年湖南化工职业技术学院单招职业技能考试题库及答案解析
- 2025-2026学年浙教版(新教材)小学劳动技术五年级下册教学计划及进度表
- 2026年南京机电职业技术学院单招职业技能考试题库附参考答案详解(考试直接用)
- 2025-2026学年人教版(新教材)小学美术二年级下册(全册)每课教学设计
- 低空航路运行安全能力评估规范
- 2026年人教版PEP新教材英语小学三年级下册教学计划(含进度表)
- 河南省2025年中考真题化学试卷(含答案)
- GB/T 12167-2006带电作业用铝合金紧线卡线器
- 《混凝土结构与砌体结构》教学PPT课件整套电子讲义
评论
0/150
提交评论