![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
文章平均质量分 64
诺亚方包
这个作者很懒,什么都没留下…
展开
-
如何画一个STM32F103核心板PCB
目录前言开始一、原理图1. 画原理图2. 分配封装二、PCB1. 模块化布局2. 布线前言我在此使用的是KiCad,其他诸如AD 等画图软件大同小异。关于KiCad 的基本使用方法,我就不在这里阐述了吧,大家可以去看其官方教程:《KiCad入门》.pdf开始一、原理图1. 画原理图我在网上找到一个stm32f103c8t6 的核心板原理图:那我接下来就按照这个图画原理图吧:我在其基础上做了一些修改,主要是:① 由于网上的原理图没有指定降压芯片的选型,所以我选用了AMS1777(去淘原创 2021-01-22 11:59:55 · 5256 阅读 · 7 评论 -
如何用树莓派做一个家庭语音助手/智能音箱
前言这学期有一个人工智能导论需要做一个课程设计,于是我就打算搞个家庭语音助手交上去,实现的功能有语音唤醒、语音合成、语音识别、控制家电、询问日期、询问时间、询问星期、 询问天气情况、播报新闻、人脸检测、人脸识别等等大概思路关于语音合成、语音识别、人脸检测、人脸识别我都是使用百度AI 开放平台提供的服务,...原创 2020-01-23 06:02:17 · 9377 阅读 · 5 评论 -
单片机数据接收 —— 自定义裁剪目标子串
例如在串口通信的代码中,我们通常会根据一些标志字符或者标志字符串来对母字符串进行裁剪,从而提取出我们想要的那段目标子串我现在假设主机发送给从机的数据是angle:50;,也就是传递给从机一个角度值为50 的信息然后从机需要从接收到的数据中把50 这个值提取出来并转化为整型:char *p = NULL, *pend = NULL;/* uart4_rcv_buf 是串口的接收数据端的bu...原创 2019-11-20 16:22:50 · 293 阅读 · 0 评论 -
STM32部分工程编译文件简介
startup_stm32f429_439xx.s功能:初始化堆栈指针SP;初始化程序计数器指针 PC;设置堆、栈的大小;设置中断向量表的入口地址;配置外部 SRAM 作为数据存储器(这个由用户配置,一般的开发板可没有外部SRAM);调用 SystemIni() 函数配置 STM32 的系统时钟;设置 C 库的分支入口“__main”(最终用来调用 main 函数);重要代...原创 2019-10-13 19:39:12 · 329 阅读 · 0 评论 -
STM32F429 >> 24. SDIO
简介控制器对SD 卡进行读写通信操作一般有两种通信接口可选,分别是SPI 接口和SDIO 接口(安全数字输入/输出接口)。SDIO 卡指利用SDIO 传输协议的一种外设,例如Wi-Fi Card。有的wifi 卡则是用串口或者SPI 接口进行通信。SD 卡物理结构一张SD 卡包括有存储单元、存储单元接口、电源检测、卡及接口控制器和接口驱动器5 个部分。存储单元存储单元是存储数据部件...原创 2019-10-13 19:36:43 · 714 阅读 · 0 评论 -
STM32F429 >> 19. RTC_实时时钟
简介RTC—real time clock,实时时钟,主要包含日历、闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多。日历包含两个 32bit 的时间寄存器,可直接输出时分秒,星期、月、日、年。功能框图1. 时钟源RTC 时钟源 —RTCCLK 可以从 LSE、LSI 和 HSE_RTC 这三者中得到。其中使用最多的是 LSE。LSE 由一个外部的 32.768KHZ(6...原创 2019-02-20 22:04:26 · 1943 阅读 · 0 评论 -
STM32F429 >> 22. FMC_扩展外部SDRAM(一)
STM32 控制器芯片内部有一定大小的 SRAM 及 FLASH 作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在 STM32 芯片的外部扩展存储器。SDRAM 控制原理给 STM32 芯片扩展内存与给 PC 扩展内存的原理是一样的,只是 PC 上一般以内存条的形式扩展,内存条实质是由多个内存颗粒(即 SDRAM 芯片)组成的通用标准模块,而STM32 直接与 SDRAM ...原创 2019-02-24 14:43:52 · 10685 阅读 · 0 评论 -
STM32F429 >> 21. LTDC 液晶屏幕
显示器的参数像素像素是组成图像的最基本单元要素,显示器的像素指它成像最小的点,液晶原理中提到的一个显示单元。分辨率一些嵌入式设备的显示器常常以“行像素值 x 列像素值”表示屏幕的分辨率。如分辨率800x480 表示该显示器的每一行有 800 个像素点,每一列有 480 个像素点,也可理解为有 800 列,480行。色彩深度色彩深度指显示器的每个像素点能表示多少种颜色,一般用“位”(bi...原创 2019-02-23 22:45:55 · 7330 阅读 · 0 评论 -
STM32 >> OLED 小屏幕(Code)
我的OLED 屏幕使用I2C 通讯需要注意的是:把控好通讯的方式及时序准确性即可。oled.h/** ****************************************************************************** * @file oled.h * @author Waao * @version V1.0.0 * @d...原创 2019-02-22 19:58:57 · 2495 阅读 · 0 评论 -
记一次错误:Error: Flash Download failed - "Cortex-M4" 和 flash timeout. reset the target and try it again
今天一大早起床,写了一小段程序,刚要下载进芯片,于是就出现了这两个错误…Error: Flash Download failed - “Cortex-M4” 和 flash timeout. reset the target and try it again从这两个错误字面意思来看,就是程序不能被正确下载进芯片的Flash,首先猜测可能是芯片被锁住了,可能睡眠或停止等。并且伴随着以下现象发生...原创 2019-02-22 15:49:58 · 3663 阅读 · 2 评论 -
STM32F429 >> 17. 利用MPU6050 进行姿态检测(Code)
mpu6050.h/** ****************************************************************************** * @file mpu6050.h * @author Waao * @version V1.0.0 * @date 16-Feb-2019 * @brief This f...原创 2019-02-17 10:14:21 · 1556 阅读 · 1 评论 -
STM32F429 >> 18. 电源管理_实现低功耗
STM32 的电源简介STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。电源监视器: STM32 芯片主要通过引脚 VDD 从外部获取电源,在它的内部具有电源监控器用于检测 VDD 的电压,以实现复位功能及掉电紧急处理功能,保证系统可靠地运行。1. 上电复位与掉电复位(POR 与PDR)当检测到 VDD 的电压低于阈值 VPOR 及 VP...原创 2019-02-19 11:41:37 · 4236 阅读 · 0 评论 -
STM32F429 >> 22. FMC_扩展外部SDRAM(二)
FMC 简介STM32F429 使用 FMC 外设来管理扩展的存储器,FMC 是 Flexible Memory Controller的缩写,译为可变存储控制器。它可以用于驱动包括 SRAM、SDRAM、NOR FLASH 以及NAND FLSAH 类型的存储器。在其它系列的 STM32 控制器中,只有 FSMC 控制器(Flexible Static Memory Controller),...原创 2019-02-24 19:07:48 · 4873 阅读 · 0 评论 -
当stm32 进入睡眠、停止、待机状态下强行下载程序
当stm32 进入睡眠、停止、待机状态下是不能正常进行程序下载的,因为此时内核会停止,具体信息可查看:STM32F429 >> 18. 电源管理_实现低功耗故在此,想要重新下载程序的话,将其唤醒是首选,但是可能由于程序上的纰漏等原因,不能将其成功唤醒,我们就只能强制下载了,即:按住stm32 复位键不松手,然后点击"Download" 下载程序,随后松开复位键。经过实际测验,这...原创 2019-02-19 14:39:18 · 2580 阅读 · 0 评论 -
STM32F429 >> 18. 电源管理_实现低功耗(Code)
睡眠进入睡眠的方式很简单:只需要调用WFI 或WFE 命令,在睡眠模式中,内核停止,但是所有外设,包括M4 核心的外设均处于工作状态中。唤醒睡眠的方式:任一中断;唤醒事件。// Wait For Interrupt__WFI();// Wait For Event__WFE();停止进入停止的操作为:调用 PWR_EnterSTOPMode(uint32_t PWR...原创 2019-02-19 15:12:18 · 1228 阅读 · 0 评论 -
STM32F429 >> 22. FMC_扩展外部SDRAM(Code)
本代码用型号为“IS42S16400J”的 SDRAM 芯片为 STM32 扩展内存。它的行地址宽度为 12 位,列地址宽度为 8 位,内部含有 4 个 Bank,数据线宽度为 16 位,容量大小为8MB。SDRAM 硬件连接图:SDRAM 与 STM32 相连的引脚非常多,主要是地址线和数据线。bsp_sdram.h/** ***************************...原创 2019-02-25 14:56:51 · 1634 阅读 · 0 评论 -
STM32F429 >> 19. RTC_实时时钟(Code)
配置及读取日期和时间此工程没有读取亚秒值。若想让时钟断电后持续计时,则不要使能RTC_Config() 函数中的后备域访问。bsp_rtc.h/** ****************************************************************************** * @file bsp_rtc.h * @author Waao...原创 2019-02-20 21:48:50 · 1707 阅读 · 0 评论 -
STM32 的中断配置很烦人怎么办?
可能大家在进行STM32 中断配置的时候经常感觉非常麻烦,总是这里配置一下,那里配置一下,又很容易发生缺漏。那我教大家一种非常容易的办法应付这种情况:1. 首先,你把STM32 的中断看作是一个人进入一个公司就职;2. 你要想进入一个公司工作,对于普通人(相当于普通的STM32 外设,例如GPIO、SPI 等)来说,那你要有业界大牛的推荐信(就是NVIC 和EXTI 的结构体配置和中断使能...原创 2019-02-20 22:42:11 · 640 阅读 · 0 评论 -
潘多拉STM32L475 >> 1.初探
开发板IO 引脚分配独立栏为Y 表示该IO 完全独立(不接其他任何外设或上下拉电阻),可通过一定方法达到完全独立使用该IO。注意事项开发板有两个 Micro USB 口,大部分情况下都是使用的 ST LINK Micro USB 口,这个接口有四个功能:供电、程序下载、仿真调试和串口调试。其中:程序下载和仿真调试需要安装 ST LINK 驱动才能正常使用(驱动在:光盘资料->...原创 2019-04-05 13:20:57 · 4278 阅读 · 0 评论 -
使用TM32CubeMX 图形配置工具生成STM32 工程代码
STM32CubeMX 教程简介:STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具,允许用户使用图形化向导生成 C 初始化代码。其特性如下:直观的选择 MCU 型号,可指定系列、封装、外设数量等条件;微控制器图形化配置;自动处理引脚冲突;动态设置时钟树,生成系统时钟配置代码;可以动态设置外围和中间件模式和初始化;功耗预测;C 代码...原创 2019-04-05 16:10:19 · 2573 阅读 · 0 评论 -
STM32F429 >> 17. 利用MPU6050 进行姿态检测
姿态角的关系坐标系间的旋转角度说明载体自身旋转偏航角(Yaw)Y 轴与标准方向的夹角绕载体Z 轴旋转 可改变俯仰角(Pitch)Z 轴与标准方向的夹角绕载体X 轴旋转可改变横滚角(Roll)X 轴与标准方向的夹角绕载体Y 轴旋转可改变利用陀螺仪检测角度最直观的角度检测器就是陀螺仪了,见图 47-3,它可以检测物体绕坐标轴转动的“角速度”,如同...原创 2019-02-17 09:21:43 · 2724 阅读 · 0 评论 -
STM32F429 >> 16. WWDG_窗口看门狗
窗口看门狗和独立看门狗最大的不同就是,独立看门狗的喂狗限制是在计数器递减为零前,而窗口看门狗的喂狗限制则是在一个窗口期内,即喂狗时间必须在一个时间段内,在狗饱腹时和饥饿时喂狗都会触发复位这个窗口期的下限为0x40,上限小于或等于0x7FRLR 是重装载寄存器,用来设置独立看门狗的计数器的值。TR 是窗口看门狗的计数器的值,由用户独立设置,WR 是窗口看门狗的上窗口值,由用户独立设置。WWD...原创 2019-02-15 21:27:33 · 548 阅读 · 0 评论 -
STM32F429 >> 20. CAN 通讯(Code)
本工程配置CAN 为回环模式。bsp_can.h/** ****************************************************************************** * @file bsp_can.h * @author Waao * @version V1.0.0 * @date 21-Feb-2019 *...原创 2019-02-21 16:34:14 · 775 阅读 · 0 评论 -
有关STM32 外设USART 的一个小问题
今天在调试USART 时,偶然发现了USART 数据寄存器状态是可以被打断的,即数据A 在发送过程中当出现了其他的数据寄存器请求B 时,该数据A 的发送会被中断,然后A 不能发送出来,而B 会被正常发送。...原创 2019-01-01 23:27:38 · 299 阅读 · 0 评论 -
STM32F429 >> 9. USART_串口通讯
串口通讯是一种设备间常用的串行通讯方式通讯协议基本分为物理层和协议层:物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体间的传输;协议层:主要规定通讯逻辑,统一收发双方的数据打包、解包标准。物理层主要分析RS-232该通讯方式中,两个通讯设备的“DB9接口” 之间通过串口信号线建立起连接,串口信号线中使用“RS-232标准” 传输数据信号。由于RS-232...原创 2018-12-29 23:28:39 · 3681 阅读 · 0 评论 -
STM32F429 >> 3. STM32 固件库
CMSIS 标准中最主要的为 CMSIS 核心层,它包括了:内核函数层:其中包含用于访问内核寄存器的名称、地址定义;设备外设访问层:提供了片上的核外外设的地址和中断定义。库目录,文件简介在STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 文件中:Libraries:文件夹下是驱动库的源代码及启动文件。Project :文件夹下是用驱动库写的例子和工程模板。...原创 2018-12-18 12:58:53 · 3117 阅读 · 0 评论 -
STM32F429 >> 2. LED_Library_Function
本文代码已上传到GitHub:https://github.com/Waao666/STM32-2.-LED_Library_Functionmain.c#include <stm32f4xx.h>#include <stm32f4xx_gpio.h>int main(void){ GPIO_InitTypeDef InitStruct; RCC->...原创 2018-12-18 12:30:02 · 225 阅读 · 0 评论 -
STM32F429 >> 8. 系统定时器
bsp_systick.c/** ****************************************************************************** * @file bsp_systick.c * @author Waao * @version V1.0.0 * @date 22-Dec-2018 * @brief ...原创 2018-12-22 23:31:47 · 587 阅读 · 0 评论 -
STM32F429 >> 7. 中断
STM32 的中断主要涉及两个部分,NVIC 和EXTINVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能;外部中断/事件控制器(EXTI)可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。EXTI 可分为两大功能:产生中断 和 产生事件当其产生中断时,其中断线路将输入信号输入到NVIC,进一步运行中断服务函数,实现功能;而当其产生事件时,则是...原创 2018-12-22 09:50:28 · 885 阅读 · 1 评论 -
STM32F429 >> 1. LED_RGB
stm32f4xx.h//外设寄存器#define PERIPH_BASE ((unsigned int)0x40000000) //总线寄存器#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000)#define AHB1PERIPH_...原创 2018-12-16 22:31:36 · 917 阅读 · 0 评论 -
STM32F429 >> 6. RCC-使用HSE, HSI 配置时钟
本工程板级支持包文件适用于野火stm32f429 开发板。bsp_clk.c/** ****************************************************************************** * @file bsp_clk.c * @author Waao * @version V1.0.0 * @date 2...原创 2018-12-21 13:15:48 · 1403 阅读 · 0 评论 -
STM32F429 >> 5. 按键控制LED 开关
本工程板级支持包文件适用于野火stm32f429 开发板。本工程中涉及bsp_led.c, bsp_led.h 等文件,请前往STM32F429 &gt;&gt; 4. 使用固件库点亮LED进行查看bsp_key.c/** ****************************************************************************** * ...原创 2018-12-21 07:30:09 · 1042 阅读 · 0 评论 -
STM32F429 >> 10. DMA_直接存储器访问
DMA 传输实现高速数据移动过程无需任何CPU 操作控制其支持以下三种传输方式:外设到存储器传输;存储器到外设传输;存储器到存储器传输。功能框图:① 外设通道选择DMA1 请求映射:DMA2 请求映射:每个外设请求都占用一个数据流通道,相同外设请求可以占用不同数据流通道。② 仲裁器仲裁器管理数据流方法分为两个阶段。第一阶段属于软件阶段,我们在配置数据流时可以通...原创 2019-01-12 09:04:44 · 1483 阅读 · 0 评论 -
STM32F429 >> 12. I²C 通讯(Code)
I²C 详细讲解在https://blog.csdn.net/weixin_40973138/article/details/86498401硬件I²C在此我们使用硬件I²C 通讯,即使用I²C 外设帮助我们控制数据的发送和时钟的规律跳变。若是使用模拟I²C 即是51 风格的编程,用程序手动控制两根总线的数据和时钟变化。编程指南初始化I²C GPIO引脚;初始化I²C;根据事件相应...原创 2019-01-17 21:09:54 · 476 阅读 · 0 评论 -
STM32F429 >> 20. CAN 通讯(二)
STM32 的 CAN 外设简介STM32 的芯片中具有 bxCAN 控制器 (Basic Extended CAN),它支持 CAN 协议 2.0A 和2.0B 标准。该 CAN 控制器支持最高的通讯速率为 1Mb/s;可以自动地接收和发送 CAN 报文,支持使用标准 ID 和扩展 ID 的报文;外设中具有 3 个发送邮箱,发送报文的优先级可以使用软件控制,还可以记录发送的时间;具有 2 个...原创 2019-02-21 15:32:36 · 3298 阅读 · 1 评论 -
STM32F429 >> 14. TIM_(一)_基本定时器
将定时器和GPIO 结合起来使用可以实现非常丰富的功能,例如测量输入信号的脉冲宽度、产生输出波形、产生PWM 控制电机状态等。STM32F42xxx 系列控制器有 2 个高级控制定时器、10 个通用定时器和 2 个基本定时器,还有 2 个看门狗定时器。控制器上所有定时器都是彼此独立的,不共享任何资源。其中最大定时器时钟可通过 RCC_DCKCFGR 寄存器配置为 90MHz 或者 180M...原创 2019-01-29 21:11:17 · 2013 阅读 · 0 评论 -
STM32F429 >> 15. IWDG_独立看门狗
STM32 有两个看门狗,一个是独立看门狗,另一个是窗口看门狗独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。IWDG...原创 2019-02-15 15:12:09 · 843 阅读 · 0 评论 -
STM32F429 >> 14. TIM_(二)_高级定时器 (Code)
输出PWM 信号在该例程中,我将PWM 信号输出管脚连接至LED 管脚,以此观察PWM 信号输出是否正常。注意:若要对LED 管脚进行初始化配置,对应LED 不能设置为熄灭,否则PWM 信号不能点亮LEDbsp_tim_advanced.h/** **********************************************************************...原创 2019-02-02 23:39:04 · 727 阅读 · 0 评论 -
STM32F429 >> 12. I²C 通讯
本工程板级支持包文件适用于野火stm32f429 开发板。I²C 物理层一个I²C 总线只使用两条总线线路,一条双向串行数据线(SDA),一条串行时钟线(SCL)。I²C 协议层1. I²C基本读写过程其中黑色表示数据由主机传输至从机。S 表示传输开始信号;SLAVE_ADDRESS 表示从机地址;白色表示数据由从机传输至主机。R/W 表示传输方向选择位,1为读,0为写;A/A 表...原创 2019-01-16 20:39:52 · 831 阅读 · 0 评论 -
STM32F429 >> 14. TIM_(二)_高级定时器
高级控制定时器(TIM1 和 TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以输入捕获和输出比较功能。高级控制定时器时基单元包含一个 16 位自动重载计数器 ARR,一个 16 位的计数器CNT,可向上/下计数,一个 16 位可编程预分频器 PSC,预分频器时钟源有多种可选,有内部的时钟、外部时钟。还有一个 8 位的重复计数器 RCR,这样最高可实现 40 位的可编程定时。STM...原创 2019-01-31 14:15:56 · 3496 阅读 · 0 评论