之前在调试STM32定时器时,由于不满意STM32 HAL库,于是便自己写了配置代码。
但是运行时,不论怎么调试,都发现定时器的每个寄存器都为0,也不清楚究竟有没有写进去。
将数据、地址等等都打印出来,都没有问题。
后来仔细检查后才发现是定时器的时钟没有打开。
如果一个外设的时钟没有打开,那么此外设是不会运行的,那么对其执行的访问都是无效的。
于是就记住了这个问题所在。
后来在调试其它外设时偶尔会出现问题,但是出现问题的一瞬间就想到是否是时钟没有打开。
如果每次遇到这个问题,都非常快的就知道了解决方案。
所以在配置外设时,发现寄存器写不进去或者写了之后全为0,那么应该要想到是否是外设时钟没有打开的原因。
关键字:STM32 配置 外设寄存器
引用地址:
STM32配置外设寄存器,不论怎么写都写不进去或全是0
推荐阅读最新更新时间:2024-11-05 14:22
STM32的CustomHID的各描述符介绍
俗话说的好,看协议手册,不如看源代码来的好!在USB的工程中,USB的各描述符定义在usb_desc.c文件里面,这里就将USB的各描述符定义代码贴上来,各个数值的意义都已经详细注释。当然很细节的东西看不懂还是建议去看手册去!!! /* USB标准设备描述符*/ const uint8_t CustomHID_DeviceDescriptor = { 0x12, /*bLength:长度,设备描述符的长度为18字节*/ USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType:类型,设备描述符的编号是0x01*/ 0x00, /*bcdUSB
[单片机]
STM8时钟配置
#include stm8s.h #include stm8s_conf.h void SystemClockOutput(void) { GPIO_Init(GPIOE,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_FAST); CLK_CCOConfig( CLK_OUTPUT_CPUDIV8 ); } void SystemClockConfigHSE(void) { CLK_HSECmd(ENABLE);//外部时钟开 //CLK_LSICmd(ENABLE);//使能内部低频RC //CLK_HSICmd(ENABLE);//使能内部高
[单片机]
s3c2440裸机-时钟编程-2-配置时钟寄存器
1.2440时钟时序 下图是2440时钟配置时序: 1.上电后,nRESET复位信号拉低,此时cpu还无法取指令工作。 2.nRESET复位信号结束后变为高电平,此时cpu开始工作。此时cpu主频FCLK=osc。 3.此时可以配置PLL,经过lock time后,FCLK倍频成新的时钟。 2.如何配置时钟 在参考手册的特性里介绍了S3C2440的工作频率,Fclk最高400MHz,Hclk最高136MHz,Pclk最高68MHz。那么 我们干脆配置FCLK:HCLK:PCLK= 400:100:50 (MHz). 1,先配置lock time 我们取芯片手册上的推荐值。
[单片机]
STM32F0xx_EXIT中断配置详细过程
Ⅰ、概述 EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种。因此,EXIT在实际项目开发中也是比较常见的一种。 STM32F0中外部中断EXIT属于中断和事件的章节,请看参考手册第十二章,但需要配合系统配置控制器(System configuration controller)进行操作,为中断分配引脚,详情请看参考手册第十章。 Ⅱ、下载 文章提供的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,请放心下载测试,如有问题请检查一下你的板子是否有问题。 ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系
[单片机]
基于STM32的大扭矩永磁同步电机驱动系统
引言 大扭矩永磁同步电机直接驱动由于去掉了复杂的机械传动机构,从而消除了机械结构带来的效率低、维护频繁、噪声与转动惯量大等不利因素,具有效率高、振动与噪声小、精度高、响应快、使用维修方便等一系列突出优点 .近年来,随着电力电子技术、永磁材料、电机设计与制造技术、传感技术、控制理论等的发展,大扭矩永磁同步电机在数控机床、矿山机械、港口机械等高性能系统中得到了越来越广泛的应用 . 交流电机控制系统广泛采用单片机、DSP、FPGA为控制系统核心。STM32 是一种基于ARM 公司Cortex-M3 内核的新型32 位闪存微控制器,采用了高性能、高代码密度的Thumb-2 指令集和紧耦合嵌套向量中断控制器,拥有丰富的外围接口
[单片机]
STM32F0xx_RTC实时时钟配置详细过程
Ⅰ、概述 今天总结RTC(Real Time Clock)实时时钟相关的知识,顺带将BKP简单总结一下。 STM32的RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后, RTC的设置和时间维持不变。 STM32F0的RTC模块和F1的RTC模块最大区别在于F0模块中有“DATE”和“TIME”寄存器,也就是可以直接读取寄存器里面的值,而F1是秒计数寄存器的值,需要通过相关算法下才能得到时间的值。 本文提供的软件工程里面还包含一个BKP模块,主要是用于掉电保持RTC数值(第一次上电初始化RTC,后面就不用初始化)。例程是在第一次初始化RTC值为:2016年6月5日 周七 12:00:00
[单片机]
stm32的学习—FLASH的操作和使用
Flash的操作: stm32大容量的flash不仅用来存储程序代码,还可用来存储一些数据和系统用户的参数。程序的代码一般保存在从flash开始区域,剩下的区域空间大小可以用来存储用户数据(大小取决于Flash的大小和代码占用空间的大小)。如果存储的数据很少可以用最后一页用于专门的存贮用户数据,这样可以防止和程序代码空间冲突。 1、STM32的Flash有读写次数和寿命的限制,所以不要放在循环中反复执行读写操作。 2、FLASH的读写均需要时间,设置等待周期是为了确保正确的读写。因为cpu的速度远远大于FLASH的操作速度。用库函数FLASH_SetLatency(FLASH_Latency_2)来设置。 3、开启FLASH预
[单片机]
STM32固件库SYSTEM 文件夹介绍
SYSTEM 文件夹里面的代码,此文件夹里面的代码由 ALIENTEK 提供,包含了几乎每个实验都可能用到的延时函数,位带操作,串口打印代码等。SYSTEM 文件夹下包含了 delay、 sys、 usart 等三个文件夹。分别包含了 delay.c、 sys.c、usart.c 及其头文件 delay.h,sys.h,usart.h。 delay 文件夹代码介绍 delay 文件夹内包含了 delay.c 和 delay.h 两个文件,这两个文件用来实现系统的延时功能,其中包含 3 个函数: void delay_init(u8 SYSCLK); //该函数用来初始化 2 个重要参数:fac_us 以及 fac_ms;同时把
[单片机]