随笔分类 -  STM32

摘要:第一步:先打开第一个hex文件, 第二步:选择 “Merge data file”,合并文件 第三步:两个工程有可能地址相同,会有如下提示:(如果在编译的时候设置好Flash的地址则不会出现以下提示信息,例如:bootloader地址为0x8000000,app地址为0x8020000) 此时,点击 阅读全文
posted @ 2019-06-25 17:59 骑单车去旅行 阅读(1092) 评论(0) 推荐(0)
摘要:硬件:STM32F103VCT6 开发工具:Keil uVision4 下载调试工具:ARM仿真器网上资料很多,这里做一个详细的整合。(也不是很详细,但很通俗)。所用的芯片内嵌3个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,2个内部通道。3个:代表ADC1、ADC2、ADC 阅读全文
posted @ 2019-03-11 22:04 骑单车去旅行 阅读(1296) 评论(0) 推荐(0)
摘要:1、空闲中断和别的接收完成(一个字节)中断,发送完成(发送寄存器控)中断的一样是串口中断; 2、空闲中断是接收到一个数据以后,接收停顿超过一字节时间 认为桢收完,总线空闲中断是在检测到在接收数据后,数据总线上一个字节的时间内,没有再接到数据后发生。也就是RXNE位被置位之后,才开始检测,只被置位一次 阅读全文
posted @ 2018-11-06 15:40 骑单车去旅行 阅读(2980) 评论(0) 推荐(0)
摘要:STM32 Embedded Software 工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库。到目前为止,有标准外设库(STD库)、HAL库、LL库 三种。前两者都是常用的库,后面的LL库是ST最近才添加,随HAL源码包一起提供,目前支持的芯片也偏少。各库如下所示:库 阅读全文
posted @ 2018-11-06 13:01 骑单车去旅行 阅读(8321) 评论(0) 推荐(2)
摘要:本篇文章主要是记录一下JFlash ARM 的相关使用和操作步骤,读取程序说不上破解,这只是在没有任何加密情况下对Flash的读写罢了!在我们装了JLINK驱动后再根目录下找到JFlash ARM ,运行。读取Flash程序:第一步:Option-->Project Settings-->CPU下选 阅读全文
posted @ 2018-11-05 13:37 骑单车去旅行 阅读(2588) 评论(0) 推荐(0)
摘要:一、综述: 1、时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI 、 HSE 、 LSI 、 LSE 、 PLL 。 ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz ; ②HSE 是高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围是 4MHz – 16M 阅读全文
posted @ 2018-10-30 23:57 骑单车去旅行 阅读(1913) 评论(0) 推荐(0)
摘要:从时钟源的角度,分为两类外部时钟(E)和内部时钟(I)。从时钟速率的角度,分为两类高速时钟(HS)和低速时钟(LS)。而把它们组合起来就有四种时钟:HSE、HIS、LSE、LSI。至于为什么会有这么复杂的时钟配置,主要是考虑到系统的性能和功耗两个方面的因素吧。单一时钟的话可能会导致性能过剩并且功耗过 阅读全文
posted @ 2018-10-30 23:55 骑单车去旅行 阅读(1431) 评论(0) 推荐(0)
摘要:1、首先我们双击桌面的keil图标,打开keil主界面; 2、点击上方菜单栏的Tools菜单,选择如下图所示的选项; 3、点击如下图所示的菜单上红笔标注的地方,给这个工具命名为vscode; 4、然后就是选择vscode程序的位置,点击下面三栏中的第一栏后面的三个点按钮选择vscode程序;如下图所 阅读全文
posted @ 2018-10-23 08:24 骑单车去旅行 阅读(5905) 评论(0) 推荐(0)
摘要:花了断断续续两天时间在STM32上面写了一个IAP(In Application Programing)Boot,期间多多少少还是遇到的了不少问题。现在就花点时间把这两天写的东西整理一下,就当是学习笔记吧。本人用的芯片是STM32F4系列,1M的FLASH,192KB的SRAM。正文不得不提的启动方 阅读全文
posted @ 2018-10-16 14:14 骑单车去旅行 阅读(2282) 评论(0) 推荐(0)
摘要:这个问题是在编译STM32的程序时遇到的,这个错误的原因是对于变量的声明不能放在可执行语句后面,必须在主函数开头声明变量。在程序中声明一个变量时,需要在可执行语句之前声明,否则会出现以上错误。 例: vu16 KeyPortState=0; SystemInit(); KeyScanState_Ty 阅读全文
posted @ 2018-09-01 10:50 骑单车去旅行 阅读(366) 评论(0) 推荐(0)
摘要:一、I2C接口读写EEPROM(AT24C02) ——主模式,分别用作主发送器和主接收器。通过查询事件的方式来确保正常通信。 1、I 2C接口初始化 与其他对GPIO 复用的外设一样,它先调用了用户函数I2C_GPIO_Confi g() 配置好 I 2 C 所用的 I/O端口,然后再调用用户函数 阅读全文
posted @ 2018-07-23 15:53 骑单车去旅行 阅读(9316) 评论(0) 推荐(0)
摘要:最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_O 阅读全文
posted @ 2018-07-18 21:17 骑单车去旅行 阅读(540) 评论(0) 推荐(0)
摘要:造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。 STM32内部自带了两个看门狗,独立看门狗(IWDG)和窗口看门狗(WWDG),这一节我们看一下独立看门狗的工作原理相关寄存器操作。 1. 独立看门狗 阅读全文
posted @ 2018-07-10 10:31 骑单车去旅行 阅读(2415) 评论(0) 推荐(0)
摘要:在项目中使用stm32标准外设库(STM32F10x Standard Peripherals Library)的时候,我们会在项目的选项中预定义两个宏定义:USE_STDPERIPH_DRIVER, STM32F10X_MD,如下图: 这两个的作用是什么呢? 1、 USE_STDPERIPH_DR 阅读全文
posted @ 2018-05-23 10:10 骑单车去旅行 阅读(1374) 评论(0) 推荐(0)
摘要:在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。所谓有效的参数是指满足规定范围的参数 阅读全文
posted @ 2018-05-04 13:44 骑单车去旅行 阅读(745) 评论(0) 推荐(0)
摘要:一、前言 Arm的应用场景往往比51单片机复杂得多,如果一个高级应用的开发需要连底层的结构性代码都要重构,那么在成本和研发周期上就会面临巨大的风险。为了简化编码过程,芯片厂商经常会提供一些板卡级支持的BSP包,系统级支持的SDK包,或者芯片级支持的HAL层。对于stm32系列的芯片,意法半导体公司提 阅读全文
posted @ 2018-05-04 12:58 骑单车去旅行 阅读(1098) 评论(0) 推荐(0)