推荐阅读最新更新时间:2024-03-16 16:24
STM32F4——RTC实时时钟
一、简介: 对于STM32F的RTC实时时钟提供了一个日历时钟,两个可编程闹钟中断和一个具有中断功能的可编程唤醒标志。由于RTC的时钟配置是在后备区域,因此在后备区域供电正常的情况下,即使是系统复位或者是从待机模式唤醒之后时间依然维持不变。下边就以RTC模块的框图为引线,对RTC的相关功能和操作做相关介绍。 二、框图: 首先是时钟的选择,一般选择LSE作为时钟来源,频率32768Hz,随后经过一个7位的异步预分频(默认值为127+1)和一个15位的同步预分频(255+1),得到1Hz的时钟频率,对于日历的配置,寄存器RTC_TR用来配置时间(时分秒),寄存器RTC_DR用来配置日期(年月日和星期),由于寄存器RTC
[单片机]
第22章 STM32F429的SysTick实现多组软件定时器
22.1 初学者重要提示 比通用定时器要容易掌握很多,因为嘀嗒定时器的功能比较的单一,根据ARM的说法,此定时器就是专门为RTOS的系统时钟节拍而设计。 本章节为大家讲解的多组软件定时器实现方案非常实用,建议初学者熟练掌握。 22.2 Systick基础知识 关于滴答定时器,初学者仅需了解到以下几点知识就够了。 Systick是Cortex-M4内核自带的组件,其它几个常用的硬件异常HardFault,SVC和PendSV也都是是内核自带的,其中Systick,SVC和PendSV的中断优先级是可编程的,跟SPI中断、ADC中断、UART中断等一样,都在同一个NVIC下配置的。而HardFault是不可编程的,且优先级
[单片机]
stm32F411 SPI3 无输出
在调试 F411 SPI3, // PB3 -- SPI_SCLK // PB4 -- SPI_MISO // PD6 -- SPI_MOSI // PA15 -- SPI_NSS 配置 MOSI MISO SCK 的时候, 想当然的把3个管脚 都配置到 GPIO_AF6_SPI3 ,导致MOSI无输出。调试了半天,以为是上拉电阻,焊掉后,一样。仔细一看手册PD6- MOSI 在GPIO_AF5_SPI3 。。 郁闷死了 粗心不得啊!
[单片机]
如何使用stm32f4 dsp库做fft运算
FFT是一种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform),它根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。 FFT运算效率 使用STM32官方提供的DSP库进行FFT,虽然在使用上有些不灵活(因为它是基4的FFT,所以FFT的点数必须是4^n),但其执行效率确实非常高效,看图1所示的FFT运算效率测试数据便可见一斑。 如何使用STM32提供的DSP库函数 1.下载STM32的DSP库 大家可以从网上搜索下载得到STM32的DSP库 2.添加DSP库到自己的工程项目中 下载得到STM32的DSP库之后,就可以将其添加到自己的工
[单片机]
STM32F407多路串口通信进行数据收发
一直被说是就不能把几个串口放在一起,写个标准例程直接用,非要每次用哪个串口才现场改程序,被迫把usart1,usart2,usart3进行了资源整合,挂在这以备不时之需。 功能简述: 串口1,串口2,串口3串口内自收自发数据,串口之间通信互发数据,读取串口的缓冲区进行收发都可以,资源冲突已经解决,可以直接用。 程序声明: 根据标准例程对usart1,usart2,usart3进行了GPIO,时钟,串口等配置,放在了一个工程中,为每个串口定义了自己的缓冲区(大小也是)用于存储串口接收到的数据。 因为主要用的是usart1来进行调试,所以就为usart1中配置了标准库函数,若需要用其他串口来打印输出,可以将下方代码
[单片机]
正点原子STM32F4(11)串行通信原理讲解
讲解内容STM32: 串行通信接口的背景知识 STM32F4串口框图 STM32F4串口常用寄存器和库函数 串口配置方法 开发指南-库函数版本 5.3小节 usart文件夹介绍 第九章 串口通信实验 STM32F4中文参考手册 26章通用同步异步收发器 处理器与外部设备通信的两种方法 并行通信 传输原理:数据各个位同时传输 优点:速度快 缺点:占用引脚资源多 串行通信 传输原理:数据按位顺序传输 优点,占用引脚资源少 缺点、速度相对较慢 下图这样的接口,是232电平的,不能和单片机直接连接 串行输出 串行移位寄存器根据波特率进行数据传输,将数据
[单片机]
STM32F429驱动外部SDRAM
STM32F429的一个很大优势就是可以直接驱动SDRAM,这样一下子就可以外扩可观的运存,很诱惑。 这里用到的SDRAM 为W9825G6KH, 256Mbit, 32MByte 配置CubeMX 这里不展开这里面的数值的具体计算过程,主要是按照手册来算的,感兴趣的可以网上寻找,有很多相关的资料。 SDRAM 初始化,SDRAM不像SRAM配置好了就可以用,他需要初始化 #include stm32f4xx_hal.h extern SDRAM_HandleTypeDef hsdram1; #define SDRAM_MODEREG_BURST_LENGTH_1 ((uint16_t)0x0000)
[单片机]
STM32F407 以太网 外部提供时钟源的驱动修改错误总结
示例代码中: void ETH_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOs clocks */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOG , ENABLE); /* Enable SYSCFG clock */ RCC_APB2Per
[单片机]