完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
开始探索STM32F051中的定时器(来自DiscoveryF0)。我从 tiM6(基本定时器)开始,因为我只是在寻找周期性中断。在我开始之前,我正在考虑在哪里可以找到该组件的完整寄存器参考(我计划在寄存器级别与定时器交互,逐位,以详细了解。)
STM32F051 的数据表说 3.14.3 基本定时器 TIM6 该定时器主要用于 DAC 触发产生。它也可以用作通用的 16 位时基。 (我不关心 DAC 触发器,只想要一个通用定时器。) RM0091 第 21 节,表 76 第 559 页定义了 8 个寄存器如下(偏移量和名称如下所示) 0x00 TIMx_CR1 0x04 TIMx_CR2 0x0C TIMx_DIER 0x10 TIMx_SR 0x14 TIMx_EGR 0x24 TIMx_CNT 0x28 TIMx_PSC 0x2C TIMx_ARR STM32F051x8.h(在 Drivers/CMSIS/Device/ST/STM32F0xx/Include/ 中)使用模板 (TIM_TypeDef) 定义了 TIM6 的寄存器结构,该模板似乎对许多(大多数?所有?)定时器都很常见,这就是为什么我我问我的问题: (STM32F051x8.h 的第 591 行) #define TIM6 ((TIM_TypeDef *) TIM6_BASE) 这是指包含 21 个寄存器偏移量而不是 8 个的结构定义。 类型定义结构 { __IO uint32_t CR1;/*!< TIM 控制寄存器 1,地址偏移量:0x00 */ __IO uint32_t CR2;/*!< TIM 控制寄存器 2,地址偏移量:0x04 */ __IO uint32_t SMCR;/*!< TIM 从模式控制寄存器,地址偏移量:0x08 */ __IO uint32_t 迪尔;/*!< TIM DMA/中断使能寄存器,地址偏移量:0x0C */ __IO uint32_t SR;/*!< TIM 状态寄存器,地址偏移量:0x10 */ __IO uint32_t EGR;/*!< TIM事件产生寄存器,地址偏移量:0x14 */ __IO uint32_t CCMR1;/*!< TIM 捕获/比较模式寄存器 1,地址偏移量:0x18 */ __IO uint32_t CCMR2;/*!< TIM 捕获/比较模式寄存器 2,地址偏移量:0x1C */ __IO uint32_t CCER;/*!< TIM 捕获/比较使能寄存器,地址偏移量:0x20 */ __IO uint32_t CNT;/*!< TIM 计数器寄存器,地址偏移量:0x24 */ __IO uint32_t PSC;/*!< TIM 预分频寄存器,地址偏移量:0x28 */ __IO uint32_t ARR;/*!< TIM 自动重载寄存器,地址偏移量:0x2C */ __IO uint32_t RCR;/*!< TIM 重复计数寄存器,地址偏移量:0x30 */ __IO uint32_t CCR1;/*!< TIM 捕获/比较寄存器 1,地址偏移量:0x34 */ __IO uint32_t CCR2;/*!< TIM 捕获/比较寄存器 2,地址偏移量:0x38 */ __IO uint32_t CCR3;/*!< TIM 捕获/比较寄存器 3,地址偏移量:0x3C */ __IO uint32_t CCR4;/*!< TIM 捕获/比较寄存器 4,地址偏移量:0x40 */ __IO uint32_t BDTR;/*!< TIM中断和死区时间寄存器,地址偏移量:0x44 */ __IO uint32_t DCR;/*!< TIM DMA 控制寄存器,地址偏移量:0x48 */ __IO uint32_t DMAR;/*!< 完整传输寄存器的 TIM DMA 地址,地址偏移量:0x4C */ __IO uint32_t 或;/*!< TIM 选项寄存器,地址偏移量:0x50 */ } TIM_TypeDef; 为了全面了解操作 TIM6,我是否应该参考其他定时器对 RM0091(第 21 节)的 TIM6 部分中未定义的寄存器的定义 - 也就是说,不完全依赖于第 21 节中的定义? TIM_TypeDef 是常见的想法然后每个单独的计时器从那里自定义吗?TIM6 是否包含 TIM_TypeDef 中的完整寄存器集? 感谢您的澄清! |
|
相关推荐
1个回答
|
|
不,它包含了 RM 中指定的内容。
TIM_TypeDef 是所有定时器的通用结构,不太高级的定时器(例如非高级定时器和基本定时器)不会实现所有功能。 由于其他定时器是高级定时器的子集(某些情况下 32 位除外),我们可以为所有定时器使用相同的结构,这很方便。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2725 浏览 1 评论
3237 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1807 浏览 1 评论
3646 浏览 6 评论
6034 浏览 21 评论
1337浏览 4评论
197浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
350浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
442浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
273浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:32 , Processed in 1.372883 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号