问题起源 在编写 STM32 OTA 程序过程中对 FLASH第一个字存放栈顶地址和第二个字存放中断向量表实现比较疑惑,不太确定是在程序的哪个阶段固定这两个地址到了FLASH中,查询资料后发现原来就在启动文件中。 之前工作写应用都是从自定义的main函数开始思考流程,虽然一直知道有启动文
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=93149 第2章 初学RTX5准备工作 俗话说万事开头难,学习一门新的知识,往往难的不是知识本身,而是如何快速上手,需要什么资料和开发环境,一旦上手后,深入的学习相对就要容易些了。 本章节就起到这样的作用,主要
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第9章 RL-USB各种USB描述符简介 本章节为大家讲解USB的各种描述符。 目录 第9章 RL-USB各种USB描述符简介 9.1 初学者重要提示 9.2 USB描述符概述(USB Descriptors) 9.3 USB设
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第2章 初学RL-USB准备工作 俗话说万事开头难,学习一门新的知识,往往难的不是知识本身,而是如何快速上手,需要什么资料和开发环境,一旦上手后,深入的学习相对就要容易些了。 本章节就起到这样的作用,
写这篇随笔的起因:f4系列的模式设置比f1的模式设置要复杂一些,用f1写的代码,想要转换到f4需要做对应的修改,对于我这类初学者来说,转换起来有些不太容易,所以在研究后,在这篇博客中写一些自己的心得体会。 GPIO端口的每个位可以由软件分别配置成8种模式。 ─输入浮空 ─输入上拉 ─输
由于对于中断的了解并不多,这里仅作相关源码(已测可用)的展示 main.c函数 #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "beep.h" #include "key.h" #include "timer.h" #include "Free
## uCOS_III_STM32F407STM32F407ZGT6 uCOS-III LED TFTLCD UART KEY TOUCHuCOS-III STM32F407ZGT6移植工程所创建任务: 1、LED1 500ms闪烁一次 2、LED2 5000ms闪烁一次 3、USART1 100ms发送一次数据 4、LCD显示:检测四个按键,按下后显示上下左右;检测触摸按键,按下后文字提示;显示3
时钟-定时器 1.外部中断线跟GPIO的连接 不同组同号相连同号中断线 2.全局中断号 EXTI中断服务函数0-4 EXTIX_IRQhander(); 0 EXTI0_IRQn 23 EXTI9_5IRQn 公用中断号::中断号共用,中断函数也共用 40 EXTI15_10IRQn 公用中断号 共用时,共用服务函数要判断标志位 if(EXTI_GetITPend
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第36章 STM32F407的SPI 总线应用之SPI Flash的MDK下载算法制作 本章节为大家讲解MDK下载算法制作方法。 36.1 初学者重要提示 36.2 MDK下载算法基础知识 36.3 创建MDK下载算法通用流程 36.4 SPI
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第23章 STM32F407的USART串口基础知识和HAL库API 本章节为大家讲解USART(Universal synchronous asynchronous receiver transmitter,通用同步异步收发器)的基础知识和对应的HAL库API。 23.1 初学
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第16章 STM32F407必备的HAL库API(重要) 本章教程为大家讲解制作一个STM32F4的例子所需的最基本API函数,对于一些常用的API函数,一定要熟练掌握这些函数都是实现了什么功能,不常用的函数有个了解即可,
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第14章 STM32F407的电源,复位和时钟系统 本章教程继续为大家讲解学习STM32F407的必备知识点电源,复位和时钟系统。掌握这三方面的知识点对后面的学习大有裨益。 14.1 初学者重要提示 14.2 电源 14
最近开始系统的学习正点原子的开发板探索者,在此总结一下自己关于IO的学习。本文参照STM32F4开发指南——库函数版本。 1. 每组IO的寄存器 4 个 32 位配置寄存器(MODER、OTYPER、 OSPEEDR和 PUPDR) MODER 寄存器,该寄存器是 GPIO 端口模式控制寄存器,四种模式:输入模式,通用输出模
在实际的工程运用中,大多数都需要将获取的数据进行存储,防止数据的丢失以及后期的数据验证。 一、主要任务 1 配置FATFS实现在SD卡中创建TXT文件; 2 将数据分行写入SD卡的TXT文件中; 3 将写入的数据读出,并通过串口1打印出来。 二、执行步骤 1 选择芯片型号STM32F407ZG,可直接搜索
STM32F4xx时钟树 STM32F407时钟树 1、 时钟树简介 从图中可以看出STM32有四个时钟源和锁相环倍频输出时钟:分别是: 1、HSE:高速外部时钟 高速外部时钟信号 (HSE) 有 2 个时钟源:(1) HSE 外部晶振/陶瓷谐振器、(2)HSE 外部用户时钟 2、HSI:高速内部时钟 HSI 时钟信号由内部 16 MHz
前言:前面介绍了一个数码管的显示超声波测距所测的距离编程和设计,现在介绍一下超声波测距这个模块的设计与编程。 1、US-100超声波的简单描述 来一个简单的原理图: 通过图片可以看出超声波测距的原理,简单描述一下就是一端发出超声波,另一端接受通过接触到物体反射回来的超声波
关于STM32F407芯片结构的个人认知 1.芯片内部结构(不深究)* 内核就相当于我们电脑中的CPU,它通过总线矩阵与Flash,SRAM,等相连。而FLASH, RAM 和片上外设,这些功能部件共同排列在一个 4GB 的地址空间内(也就是存储器),我们在编程的时候,操作的也正是这些功能部件。 那么我们就会不
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第5章 Matlab简易使用之常用编程语句 本期教程主要是讲解Matlab的一些编程语句。 5.1 初学者重要提示 5.2 Matlab控制流 5.3 Matlab中help功能的使用 5.4 总结 5.1 初学者重要提示
现象: STM32F407最小系统焊接完成上电,测试了系统时钟是正常的24MHz,但是led闪烁程序下进去没有反应,然后在重复上电的过程中偶尔能够启动,证明板子基本问题不大.后隔一段时间通电又可以启动,频繁断电启动又不能启动了. 分析: 1.时钟问题,经过示波器测量排除;
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第1章 初学数字信号处理准备工作 本期教程开始带领大家学习DSP教程,学习前首先要搞明白一个概念,DSP有两层含义,一个是DSP芯片也就是Digital Signal Processor,另一个是Digital Signal Processing,也就
问题描述 分享一个之前遇到的STM32F4晶体频率问题,导致单片机死机的解决办法。使用一款新的F4开发板,直接使用的正点原子STM32F407工程模板代码,管脚配置正确,下载到外部晶体为25MHz的开发板之后,LED不闪烁,串口无输出,单片机直接死机,调试器检测不到芯片。 问题分析 之前写过一篇文章:STM3
利用定时器控制 DMA 读取频率,通过 DAC 输出; 新手,代码参考正点原子相关内容。 代码链接:https://pan.baidu.com/s/11s_rl8grAx-4idfwuskyGA
配置时钟,延时函数,均使用正点原子的SYSTEM文件 系统时钟配置步骤 正点原子,时钟配置函数(我都是直接把sys.c和sys.h拷贝过来,直接使用) //设置向量表偏移地址 //NVIC_VectTab:基址 //Offset:偏移量 void MY_NVIC_SetVectorTable(u32 NVIC_VectTab,u32 Offset) { S
1.多任务时使用多值信号量来保护执行的任务会比较好,调度器上锁和中断开关里面不能有延时。 2.多任务协调时尽量将 执行时间较长并且可打断 的任务的优先级设为最低,从而提高流畅性。 暂时就这些,以后用到再补充。
电路板上焊接晶振写着8000(意思是8000kHZ),为8MHz。 阅读ST的RM手册6.2章节Figure 16. Clock tree,推测晶振应连接外部高速输入口。 阅读电路板的硬件设计原理图映证第二点说法。 查看代码相关时钟树配置,参考函数SystemInit(void)和SetSysClock(); RCC_CFGR的Bits 1:0 SW: Syste