STM32
文章平均质量分 61
fandelxin
不积跬步无以至千里
展开
-
【KEIL】 __FPU_PRESENT出现重定义的警告
__FPU_PRESENT重定义警告原创 2022-01-08 14:34:08 · 4397 阅读 · 0 评论 -
KEIL开启语法自动补全时困顿问题
KEIL开启语法自动补全时困顿问题keil终于出了语法补全,但是开启后如果找不到对应的变量或者函数keil就会卡住好久回不来。解决办法:keil的补全搜索与电脑上的杀毒软件保护会有冲突,导致keil的搜索被卡住,关掉杀毒软件,各种卫士等等,就可以。...原创 2020-12-02 10:08:38 · 1523 阅读 · 3 评论 -
STM32F4读写内部FLASH【使用库函数】
STM32F4读写内部FLASH【使用库函数】STM32F4Discovery开发帮使用的STM32F407VGT6芯片,内部FLASH有1M之多。平时写的代码,烧写完之后还有大量的剩余。有效利用这剩余的FLASH能存储不少数据。因此研究了一下STM32F4读写内部FLASH的一些操作。【STM32F4 内部Flash的一些信息】STM32F407VG的内部FLASH的地址是:转载 2014-07-08 12:55:02 · 5279 阅读 · 0 评论 -
keil错误提示Error: L6218E: Undefined symbol
Echuxianrror: L6218E: Undefined symbol原创 2014-06-18 15:41:21 · 49471 阅读 · 5 评论 -
stm32F205程序移植到stm32F405片子,使用FPU时注意事项
除了网上的教程外,还要特别注意,当运算中有fu原创 2014-04-17 17:03:42 · 11094 阅读 · 1 评论 -
STM32串口介绍
串口作为 MCU 的重要外部接口,同时也是软件开发重要的调试手段, 其重要性不言而喻。STM32 的串口资源相当丰富的,功能也相当强劲。ALIENTEK 战舰 STM32 开发板所使用的 STM32F103ZET6 最多可提供 5 路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持 LIN、 支持调制解调器操作、 智能卡协议和 IrDA SIR ENDEC 规范、具有 DM转载 2014-09-09 09:26:59 · 2236 阅读 · 0 评论 -
STM32 定时器 定时时间的计算
假设 系统时钟是72Mhz,TIM1 是由PCLK2 (72MHz)得到,TIM2-7是由 PCLK1 得到关键是设定 时钟预分频数,自动重装载寄存器周期的值/*每1秒发生一次更新事件(进入中断服务程序)。RCC_Configuration()的SystemInit()的RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2表明TIM3CLK为转载 2014-08-13 21:14:45 · 8949 阅读 · 0 评论 -
STM32外部中断
STM32 外部中断配置STM32 外部中断配1配置中断1、 分配中断向量表:/* Set the Vector Table base location at 0x20000000 */NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);2、 设置中断优先级:NVIC_PriorityGroupConfig(NVIC_Prior转载 2014-05-23 09:44:34 · 4909 阅读 · 0 评论 -
STM32IAP升级------IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结
IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结一,网上下载的例程,跳转部分的代码有差异,尤其是用的汇编那句二,关于跳转部分的代码的理解(转)三,关于跳转时能否不用按键,用软件标志位以及APP与IAP之间的互跳四,关于APP与IAP互跳之间的中断处理问题原创 2014-06-18 16:46:58 · 31355 阅读 · 7 评论 -
STM32IAP升级-----编写IAP升级遇到的问题总结
编写IAP升级遇到的问题总结一,串口通信问题二,FLASH问题三,数组越界问题四,关于APP与IAP互跳之间的中断处理问题五,总结一下在IAP升级中APP程序的中断向量表的偏移原创 2014-06-18 10:51:35 · 18488 阅读 · 0 评论 -
关于Keil打开未响应卡死的问题
关于Keil打开未响应卡死的问题原创 2015-05-25 11:38:46 · 40525 阅读 · 47 评论 -
stm32串口占用时间、消耗CPU及最大中断时间的深度分析,探寻一种更有效的串口发送方式
stm32串口占用时间、消耗CPU及最大中断时间的深度分析,探寻一种更有效的串口发送方式原创 2015-05-20 09:30:22 · 9670 阅读 · 1 评论 -
关于keil软件仿真时提示no 'read' permission没有读或写权限
*** error 65: access violation at 0x40023800 : no 'read' permissionkeil软件仿真simulator时没法run只能点一下走一下。提示no 'read' permission。解决办法:在工程下新建一个debug.ini文件,在文件中写入map 0x40000000,0x40070000 read writ原创 2015-07-03 22:48:37 · 28838 阅读 · 8 评论 -
STM32 ADC结合DMA数据采样与软件滤波处理
本文原创于观海听涛,原作者版权所有,转载请注明出处。作为一个偏向工控的芯片,ADC采样是一个十分重要的外设。STM32集成三个12位精度18通道的内部ADC,最高速度1微秒,结合DMA可以解放CPU进行更好的处理。ADC接口上的其它逻辑功能包括:●同步的采样和保持●交叉的采样和保持●单次采样模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的转载 2015-10-29 09:56:33 · 8979 阅读 · 3 评论 -
float与double的范围和精度
float与double的范围和精度1 范围float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)8bits(指数位)23bits(尾数位)double:1bit(符号位)11bits(指数转载 2015-11-30 19:24:08 · 6691 阅读 · 0 评论 -
KEIL MDK输出map文件分析
前面写了一篇文章对__main函数的执行过程做了一个粗略的跟踪描叙,对一个烧录了程序的STM32开发板从启动复位到进入用户main函数的过程有了一个大概的了解,但是有很多问题感觉还是模模糊糊,因此,今天又把KEIL MDK编译、链接后生成的map文件简单分析一下,加深对链接器、嵌入式系统可执行映像特点的了解。、一、文件分析流程1、第一部分:Section C转载 2016-10-24 22:45:58 · 1191 阅读 · 0 评论 -
KEIL获取工程编译时间
可以使用KEIL内置的__DATE__ 和 __TIME__ 宏来实现这个功能参考范例:unsigned char code DataStr[]=__DATE__;unsigned char code TimeStr[]=__TIME__;这样,编译后TimeStr的字符串正好是编译的当前时刻,相当于unsigned char code TimeStr[]="09:12:04"原创 2017-01-13 17:34:50 · 14911 阅读 · 2 评论 -
keil的错误提示error: C3900U: Unrecognized option '-O3'.
这是使用的keil版本(或者权限不够)不支持O3dengji原创 2014-06-10 11:12:41 · 17824 阅读 · 0 评论 -
* JLink Info: Could not measure total IR len. TDO is constant high.
keil编译Jlink烧写时提示* JLink Info: Could not measure total IR len. TDO is constant high.。无法烧写成功。。我的we原创 2014-06-15 16:34:20 · 15659 阅读 · 2 评论 -
c语言全局变量和局部变量问题汇总
1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。2、如何引用一个已经定义过的全局变量?转载 2013-12-30 11:36:25 · 1174 阅读 · 0 评论 -
UART总线
UART (Universal Asynchronous Receiver/Transmitter) 通用异步收发器。UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。 RS232 COM口是PC(个人计算机)上,异步串行通信口的简写。由原创 2013-12-31 16:25:02 · 7054 阅读 · 0 评论 -
keil中error: #70: incomplete type is not allowed——已解决!
今天改写程序,,在b.c文件中需要引入一个a.c中的结构体变量,,我在b.c中直接extern 这个结构体,,结果编译时报错error: #70: incomplete type is not allowed最后上网查找才知道结构体不能这样引入。。 正确的引入方法是; 1.在a.h中声明这个结构体,,(结构体实体要在.h文件中) 2.在a.c中定义这个结构体类型的变量原创 2014-01-02 16:05:25 · 38793 阅读 · 3 评论 -
STM32中assert_param的使用
我们在学STM32的时候函数assert_param出现的几率非常大,上网搜索一下,网上一般解释断言机制,做为程序开发调试阶段时使用。下面我就谈一下我对这些应用的看法,学习东西抱着知其然也要知其所以然。在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上a原创 2014-01-04 15:31:37 · 2865 阅读 · 0 评论 -
STM32中断—优先级设置
(一)中断优先级概念 STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。 (二)中断响应次序 (1)具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌转载 2014-01-24 14:18:06 · 2120 阅读 · 0 评论 -
can总线的示波器检测方法
整理自网络::做一想要从车上测出can总线上的数据还不太容易。于是我首先使用示波器(我使用的示波器型号是TDS 220)来找出汽车上can总线的接口,然后测出can总线的波特率,测量波特率的步骤如下:1、将示波器的两个接口(接地和探头)分别接在can总线的两条线(CAN_H和CAN_L)上,这里需要注意如果CAN线上需要接一个120欧姆的负载电阻,否则波形是不规整方原创 2014-01-16 17:18:54 · 55447 阅读 · 2 评论 -
STM32的IAP
首先两个区是肯定的我是这样做的,一个引导区,一个应用程序区,外扩一片flash(本来就需要外扩,只是在里面存放几个变量)每次启动就去读flash特定的那几个变量(怕误操作,我定义了5个变量,当5个变量相加 == 5 的话就是需要更新程序)如果需要更新的话直接跳转到App,App里接收文件保存在外部flash里(我连CRC校验一起保存),当全部接收完,校验通过后就置标志,然后原创 2014-02-08 17:24:10 · 4573 阅读 · 1 评论 -
STM32启动模式及API
我们玩ARM9,一般都是在内存里调试程序,速度飞快。STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序上一个小小的改动要花上几倍的时间下载代码,这确实是不能忍受的。 我们也可以在开发STM32时,在内存中调试程序。 {STM32这颗Cortex-M3控制器,与其他许多ARM一样,提供了BOOT0和BOOT1两个管脚用转载 2014-02-09 22:43:59 · 1577 阅读 · 0 评论 -
利用ST提供的USB例程实现USB IAP功能
我们知道ST推出的Cortex-M3平台STM32内部有两个Flash区域,一是System Flash,ST官方保留的一个区域,用于存放IAP代码。该区域不对用户开放,仅提供UART的通讯接口用于IAP升级;另一个区域是User Flash,这一部分是供用户自由使用的。STM32自带USB 2.0 Device接口,如果需要通过USB接口来实现IAP功能需要如何做呢?这里介绍如何利用ST STM转载 2014-02-09 22:50:47 · 1389 阅读 · 1 评论 -
stm32启动代码分析
学习STM32,看了一堆乱七八糟的文档,准备写程序了,先分析了下STM32的启动代码,看着这堆鬼鬼的汇编代码,挺吓人的,看看帮助,查查网路,还是不那么难懂。;// Stack Configuration;// Stack Size (in Bytes) ;// Stack_Size EQU 0x00000200原创 2014-02-09 22:33:35 · 3591 阅读 · 1 评论 -
Stm32 SWD 下载 调试配置
找到一篇比较好的 关于stm32 SWD模式 下载 调试 配置文章 整理如下: 我们比较常用的是Jlink下载器 ,这种下载器有一个缺点就是使用的Jtag 20PIN接口,太多的PIN会导致一些小型的PCB板很拥挤,也会增加布线的难度。 而使用SWD接口下载调试,只需要要使用4个PIN: GND, RST, SWDIO, SWDCLK ,而且下载速度可以转载 2014-02-13 13:06:46 · 2675 阅读 · 0 评论 -
keil调试时显示not in scope
用keil定义一个变量调试程序是要查看那个变量的值,总是显示not in scope原创 2014-04-17 16:50:23 · 14989 阅读 · 3 评论 -
自动类型提升
面试过java程序员的或多或少对这个题目有点面熟:short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?答案是:前者错,后者对。why? 且看下面分解:java类型计算中,除了强制类型转换,还有各不很面熟的自动类型提升java在表达式中,对中间值的精确要求有时可能会超过任何一个操作数的范围。例如,考虑下面的表达式转载 2014-04-01 18:58:19 · 1536 阅读 · 0 评论 -
KEIL调试错误信息提示
1..\HardWareDriver\UART1\UART1.h(148): warning: #1295-D: Deprecated declaration UART1_sendIMU_data - give arg types原创 2014-04-22 21:30:58 · 4980 阅读 · 0 评论 -
STM32+ULN2003驱动步进电机
选用的步进电机的型号为28BYJ-48(或MP28GA,5V,转速比1/64),驱动电路选用uln2003芯片的驱动板,其控制时序图如下:四相八拍:A->AB->B ->BC ->C ->CD ->D ->DA其A、B、C、D指的是uln2003芯片驱动板的1N1、1N2、1N3、1N4,波形在上表示有输入信号。此外至少需要4根杜邦线,还需提供一个5V的直流电源,接线方式如原创 2014-05-12 00:06:01 · 41109 阅读 · 1 评论 -
stm32adc多通道数据采集
word文档链接:http://download.csdn.net/detail/mjlsuccess/6031351,免费的哈工程连接:http://download.csdn.net/detail/mjlsuccess/6202155/** @date2013/8/28 @authorMei Jilin@brief ADC1的配置完成3通道的数据采集转载 2014-05-25 14:34:18 · 3106 阅读 · 0 评论 -
uint8_t,uint16_t等是什么数据类型
在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等。咋一看,好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?很多人有这样的疑问。论坛上就有人问:以*_t结尾的类型是不是都是long型的?在baidu上查一下,才找到答案,这时才发觉原来自己对C掌握的太少。那么_t的意思到底表示什么?具体的官方答案没有找到,不过转载 2013-12-30 11:11:02 · 8052 阅读 · 0 评论