6055|9

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于SysTick定时器的寄存器而引出的问题 [复制链接]



1、在“STM32F10x参考手册”中提都不提,至少应该加一句“请参见Cortex-M3权威指南”吧。
2、在《STM32F10x参考手册》中有“6.3.1 时钟控制寄存器(RCC_CR) ”说明了寄存器的名称;我在keil MDK的软仿真的“watch & call stack window”窗口中可用RCC_CR观察;
但SystemTick的寄存器名称是什么?SysTick_ CTRL或者ST_ CTRL_STAT都不对,Cortex-M3权威指南中也没有说;
3、在《STM32F10x参考手册》中有RCC_CR复位值: 0x000 XX83,有
            位19     CSSON:时钟安全系统使能
        由软件置’1’或清零以使能时钟监测器。
        0:时钟监测器关闭;
                  1:如果外部4-25MHz时钟就绪,时钟监测器开启。
   而《Cortex-M3权威指南》中COUNTFLAG是在CTRL寄存器的哪一位都没说,太不严谨了吧
4、《Cortex-M3权威指南》中“通过检查校准寄存器的位[31](NOREF),可以判定是否有可用的外部时钟源,而芯片厂商则必须把该引线连接至正确的电平。”没明确说明是否为1表示有外部时钟源

此帖出自stm32/stm8论坛

最新回复

请参看core_cm3.h文件的SysTick_Config函数和misc.c文件的SysTick_CLKSourceConfig函数  详情 回复 发表于 2011-8-6 12:21
点赞 关注
 

回复
举报

87

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

关于COUNTFLAG

在“stm32f10x_map.h”中的
#define  SysTick_CTRL_COUNTFLAG    ((u32)0x00010000)        /* Count Flag */
才知道是位16
累啊!!!
此帖出自stm32/stm8论坛
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

原来关于SysTick的说明在第8章和第13章各半,佩服!!!

                                  
此帖出自stm32/stm8论坛
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

4
 

同感

看遍了Datasheet和Reference Manual,就是没找到SysTick寄存器的说明,而且文章里讲到的寄存器都是给出的偏移地址,没有直接地址,不明白ST是怎么想的?难道要在他们提供的硬件库里查找?

开始我是想用Luminary的CM3芯片,也看完了资料,讲的都很清楚,因为网上看到的关于STM32的讨论更多,就选择了STM32,没想到实际设计的时候居然在资料里找不到寄存器的地址,有点莫名其妙。
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 

看固件库

可以查固件库啊!专门有一章是SYSTICK的。
我觉得习惯使用固件库的话,开发会变得很容易了,基本很上就不用去查技术手册中每个寄存器各位的含义了,因为它参数说明都很清晰了。
而且,它每个外设还都提供示例程序了,模仿一下就能改出你需要的代码了。
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

6
 

以前有人列出来过,我收藏过

copy下一吧:

STM32中用到的Cortex-M3寄存器说明 
   在STM32中用到了Cortex-M3定义的三组寄存器,有关这三组寄存器的说明不在STM32的技术手册中,需要参考ARM公司发布的Cortex-M3 Technical Reference Manual (r2p0)。 
   在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下: 

   1)、NVIC寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vu32 ISER[2]; 
         u32 RESERVED0[30]; 
         vu32 ICER[2]; 
         u32 RSERVED1[30]; 
         vu32 ISPR[2]; 
         u32 RESERVED2[30]; 
         vu32 ICPR[2]; 
         u32 RESERVED3[30]; 
         vu32 IABR[2]; 
         u32 RESERVED4[62]; 
         vu32 IPR[11]; 
       } NVIC_TypeDef; 

       它们对应ARM手册中的名称为 
       ISER = Interrupt Set-Enable Registers 
       ICER = Interrupt Clear-Enable Registers 
       ISPR = Interrupt Set-Pending Register 
       ICPR = Interrupt Clear-Pending Register 
       IABR = Active Bit Register 
       IPR = Interrupt Priority Registers 

       每个寄存器有240位,以Interrupt Set-Enable Registers说明,ISER[0]对应中断源0~31,ISER[1]对应中断源32~63,STM32只有60个中断源,所以没有ISER[2:7]。 

       参考STM32技术参考手册中的中断向量表,中断源的位置为: 
       位置0 - WWDG = Window Watchdog interrupt 
       位置1 - PVD = PVD through EXTI Line detection interrupt 
       位置2 - TAMPER = Tamper interrupt 
       ...... 
       位置58 - DMA2_Channel3 = DMA2 Channel3 global interrupt 
       位置59 - DMA2_Channel4_5 = DMA2 Channel4 and DMA2 Channel5 global interrupts 

  
   2)、系统控制寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vuc32 CPUID; 
         vu32 ICSR; 
         vu32 VTOR; 
         vu32 AIRCR; 
         vu32 SCR; 
         vu32 CCR; 
         vu32 SHPR[3]; 
         vu32 SHCSR; 
         vu32 CFSR; 
         vu32 HFSR; 
         vu32 DFSR; 
         vu32 MMFAR; 
         vu32 BFAR; 
         vu32 AFSR; 
       } SCB_TypeDef; /* System Control Block Structure */ 
        
       它们对应ARM手册中的名称为 
       CPUID = CPUID Base Register 
       ICSR = Interrupt Control State Register 
       VTOR = Vector Table Offset Register 
       AIRCR = Application Interrupt/Reset Control Register 
       SCR = System Control Register 
       CCR = Configuration Control Register 
       SHPR = System Handlers Priority Register 
       SHCSR = System Handler Control and State Register 
       CFSR = Configurable Fault Status Registers 
       HFSR = Hard Fault Status Register 
       DFSR = Debug Fault Status Register 
       MMFAR = Mem Manage Address Register 
       BFAR = Bus Fault Address Register 
       AFSR = Auxiliary Fault Status Register 

   3)、系统时钟寄存器组 
       STM32的固件库中有如下定义: 
       typedef struct 
       { 
         vu32 CTRL; 
         vu32 LOAD; 
         vu32 VAL; 
         vuc32 CALIB; 
       } SysTick_TypeDef; 

       它们对应ARM手册中的名称为 
       CTRL = SysTick Control and Status Register 
       LOAD = SysTick Reload Value Register 
       VAL = SysTick Current Value Register 
       CALIB = SysTick Calibration Value Register 
此帖出自stm32/stm8论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

7
 
开始用固件库   后来我用是示波器测了下发现误差之大定时,后来部分用寄存器操作相对而言误差减小很多但是还比较大
此帖出自stm32/stm8论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 5楼 dyw07 的帖子

想请教一下:SysTick库函数放在那个文件啊?我找不到SysTick_CounterCmd(),NVIC_SystemHandlerPriorityConfig() !!!
此帖出自stm32/stm8论坛
 
 
 

回复

190

帖子

0

TA的资源

五彩晶圆(初级)

9
 

回复 8楼 healthywolf 的帖子

那要看你用的是哪个版本的库函数,如果是3.x版本
则没有这两个函数了,对于systick的设置而言使用函数
SysTick_Config(),,位于core_cm3.h文件里,这个函数完成
”重载值设置、优先级设置、载入计数值、开启systick中断、开始计数“
这几个工作

[ 本帖最后由 losingamong 于 2011-8-6 12:21 编辑 ]
此帖出自stm32/stm8论坛
 
 
 

回复

190

帖子

0

TA的资源

五彩晶圆(初级)

10
 

回复 8楼 healthywolf 的帖子

请参看core_cm3.h文件的SysTick_Config函数和misc.c文件的SysTick_CLKSourceConfig函数
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表