![](https://img-blog.csdnimg.cn/20200620175810542.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STM32
文章平均质量分 97
STM32的学习历程分享
小默haa
Never say never!
展开
-
使用STM32的DFSDM外设来驱动PDM麦克风进行音频采集
0、前言最近需要使用STM32L4系列来完成音频采集的工作,前前后后一共尝试了三种方案,最终在各种测试条件以及功耗等原因下,选择了目前这个方案。主控使用的是STM32L475RCT6(无需一致,只要有DFSDM即可),MEMS麦克风使用的是ST的MP45DT02TR-M(某宝4.5一片)。先说一下最终的效果,最终实现在8KHz采样率下,系统能正常工作,整体功耗大约为8mW。1、之前的两种方案最开始所使用的是INMP441麦克风,这款MEMS传感器使用I2S总线来驱动,使用单片机SAI外设给传感器相原创 2020-11-05 17:39:56 · 18359 阅读 · 25 评论 -
MDK解决方案:Warning L6989W
在使用STM32L4系列单片机,使用数学函数以及DSP库的时候,有时会出现以下警告Warning: L6989W: Could not apply patch sdcomp-29491-629360 to instruction VPOP {d8-d12} at offset 0x24, instruction is within an IT block and is not the last instruction for sin_i_x.o(i.____kernel_sin$lsc).在..原创 2020-07-29 14:16:17 · 6082 阅读 · 0 评论 -
MDK解决方案:error: #29: expected an expression
MDK默认用的是C90,配置一下支持C99,如下图所示或者输入--c99原创 2020-07-29 13:55:47 · 5318 阅读 · 0 评论 -
【STM32】HAL库开发之开启STM32L4系列单片机的FPU
STM32L4 属于 Cortex M4F 架构,带有 32 位单精度硬件 FPU,支持浮点指令集,相对于Cortex M0 和 Cortex M3 等,高出数十倍甚至上百倍的运算性能。而我们在处理音频数据的时候,有的时候需要使用官方的《arm_cortexM4lf_math.lib》来处理数据,在使用滤波器的同时就需要进行大量的浮点数计算。STM32L4 硬件上要开启 FPU 是很简单的,通过一个叫:协处理器控制寄存器(CPACR)的寄存器设置即可开启 STM32L4 的硬件 FPU。这里原创 2020-07-26 22:07:53 · 2475 阅读 · 1 评论 -
【STM32】关于MDK编译过程速度过慢
在进行HAL或者标准库开发的过程中,由于工程中添加了大量的库文件,导致在全编译过程中,系统cpu占用过高,而且编译速度巨慢以下为添加少量的库文件情况下的编译结果为了加快编译速度,将设置中的输出选项中 browse information取消勾选现在来看一下全编译的速度快了不只是一点半点!但是,这时候的函数定义的快速定位功能就不能再使用了此时会出现警告如果想使用这个功能,请打开browse information然后重新编译。所谓有失必有得,不...原创 2020-07-19 21:47:10 · 3813 阅读 · 1 评论 -
【STM32】HAL库开发之通用定时器中断
目录一、STM32的定时器资源1、STM3 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能2、定时器计数模式3、计数器时钟选择二、使用STM32CubeMX创建工程1、设置RCC2、时钟树配置3、配置TIM34、设置工程文件等等三、程序设计四、HAL库中定时器相关的函数与其用法一、STM32的定时器资源STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有原创 2020-07-19 20:13:18 · 20029 阅读 · 1 评论 -
【STM32】时钟系统RCC
目录一、时钟树1、时钟源2、高速外部时钟信号(HSE)3、低速外部时钟信号(LSE)4、系统时钟(SYSCLK)5、时钟输出(MCO)6、AHB参考文献一、时钟树本文以STM32F103为例,将本人所知的关于STM32的时钟系统的知识点展示出来。先贴上STM32F1系列的时钟树1、时钟源由时钟树可以,对于STM32来说,时钟源一共有四个,分别为LSI、LSE、HSE、HSI。另外一种说法为五个,加上PLL。个人认为,根据上面这个时钟树也可以看...原创 2020-07-13 18:34:24 · 4277 阅读 · 1 评论 -
【STM32】HAL库开发之GPIO有关的函数
在ST官方的stm32l4xx_hal.c文件中,有一些关于GPIO的函数,有以下几个。1、HAL_GPIO_Initvoid HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)这个函数主要用来初始化我们需要用到的引脚的工作模式,包括具体引脚的工作速度、是否复用模式、上下拉等等参数。2、HAL_GPIO_DeInitvoid HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uin原创 2020-07-12 18:21:55 · 3414 阅读 · 0 评论 -
【STM32】HAL库开发之STM32CubeMX新建工程
目录一、引言二、新建工程1、开始2、芯片选型3、配置主界面4、引脚分配以及外设配置4.1 RCC配置4.2 调试接口配置4.3 GPIO配置5、时钟树的配置6、工程管理6.1 工程设置6.2 代码生成设置6.3 高级设置7、生成工程三、软件设计四、结束语一、引言硬件学习,始终是逃不开点灯。在这里,将以STM32L475VET6为例,创建一个STM32CubeMX的新工程文件,并且实现点亮LED。二、新建工程如上一节《【STM原创 2020-07-12 18:01:43 · 2607 阅读 · 0 评论 -
PCM / I2S / AC97/PDM
IIS仅仅是PCM的一个分支,接口定义都是一样的它们有四组信号: 位时钟信号,同步信号,数据输入,数据输出。 PCM一般传单声道的声音,也可以传立体声,采样频率一般为8KHz。IIS一般传立体声,比PCM多了一个线路。数据格式都为PCM格...转载 2020-06-26 13:31:45 · 1187 阅读 · 0 评论 -
【STM32】STM32CubeMX软件的安装
1、HAL库HAL库,全称就是Hardware Abstraction Layer(抽象印象层)。库如其名,很抽象,一眼看上去不太容易知道他的作用是什么。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL库尤其的有效,如果说标准库把实现功能需要配置的寄存器集成了,那么HAL库的一些函数甚至可以做到某些特定功能的集成。也就是说,同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。并且HAL库也很好的解决了程序移植的问题,不同型号的stm32芯片它的标准库是不一...原创 2020-06-21 22:05:03 · 993 阅读 · 1 评论 -
STM32F103C8T6高级控制和通用定时器通道引脚分布
原创 2020-01-11 11:56:29 · 4875 阅读 · 2 评论 -
关于STM32的BOOT0和BOOT1
STM32一共有三种启动模式,在ST官网上下载的RM0008中,可找到启动...原创 2020-01-07 23:35:37 · 1384 阅读 · 0 评论 -
STM32串口配置
串口一void usart1_Init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Pe...原创 2020-01-06 15:57:30 · 931 阅读 · 0 评论 -
TFmini(TOF)在stm32上的应用
使用TFmini是采用串口通信,与STM32F103ZET6通信,同时在LCD上显示。通信协议使用出厂预设TFmini数据输出使用标准数据输出格式设置TFmini串口发送速率为20Hz(注意可使用串口工具修改TFmini参数,具体请参见对应操作手册)在LCD上显示距离、强度、接收到的9bit数据以及接收速率。注意:在本程序中使用标准库以及正点原子的LCD驱动程序ma...原创 2020-01-06 14:11:05 · 3368 阅读 · 16 评论 -
stm32(库函数)——新建基于固件库的MDK5工程模板
这里根据STM32不完全手册记录建立库函数版本的基于固件库的MDK5工程模板。1、我们每一次新建工程都会新建一个文件夹存放所有文件。2、点击MDK的菜单:Project—>New Uvision Project,新建工程文件,然后将目录定位在刚刚新建的文件夹之下,然后新建一个子文件夹重命名为USER(存放代码工程等文件),当然也不一定,比如很多人也喜欢新建为project,这些都是因...原创 2019-01-26 18:16:08 · 4347 阅读 · 2 评论 -
..\SYSTEM\usart\usart.c(41): error: #260-D: explicit type is missing ("int" assumed)
在MDK5中调试STM32代码usart.c时,提示如下警告:compiling usart.c.....\SYSTEM\usart\usart.c(41): error: #260-D: explicit type is missing ("int" assumed) _sys_exit(int x) ..\SYSTEM\usart\usart.c: 0 warnings, ...原创 2019-01-27 13:45:59 · 4941 阅读 · 0 评论 -
STM32F103(库函数)——点亮LED并且使用软件延时实现led闪烁
当我们学过51单片机之后就知道在51单片机中点亮一个LED很简单一句代码就可以实现。只需要将LED所连接的IO口拉低就可以点亮LED。但是在STM32中,点亮LED确实比51要麻烦很多。一样,在STM32中点亮LED也是属于基本的IO口的使用,所以每当我们需要点亮LED时就需要正确配置IO口。STM32的IO口相比51单片机而言要复杂很多,所以用起来也很困难。下面就是点亮LED的代...原创 2019-01-27 16:00:54 · 6942 阅读 · 1 评论 -
STM32F103(库函数)——按键检测
在我的STM32F103ZET6核心板上有四个按键,其中一个是复位按键,其余三个原理图如下图所示。其中KEY0和KEY1分别接在PE3和PE4上,然后低有效。WK_UP接在PA0上,高电平有效。而且根据原理图,在外部电路中是没有上下拉电阻的,所以我们需要在STM32中设置上下拉电阻。一样,因为设置按键也是配置IO口工作方式。main.c/****************...原创 2019-01-28 13:11:20 · 5451 阅读 · 2 评论 -
Old ST-LINK firmware detected.do you want to upgrade it?
今天用stm32板子和很久之前的stlink下载器调试时,用keil烧写程序出现下面的问题: 原因: stlink固件太旧了,解决办法:升级stlink固件,升级方法:1. 下载st link utility工具。官网下载:https://www.st.com/content/st_com/zh.html2. 安装st link util...原创 2019-05-11 23:55:30 · 3186 阅读 · 0 评论 -
使用e-link32下载器烧录stm32程序
目录1、关于e-link322、SWD 及虚拟串口接口说明3、e-Link32 在 Keil(MDK_ARM)环境下的使用4、e-link32驱动5、e-Link32 接驳 20 脚 JTAG 调试接口的开发板由于各种原因,我并没有选择原子哥家的官方的st-link下载器,而是选择了更为小巧的e-link32下载器。1、关于e-link32实物图如下e-Li...原创 2019-01-26 13:14:22 · 8501 阅读 · 4 评论