STM32个人见解
_WindChimes
Just be nice,always thinks twice.
展开
-
结构体位域及联合体解析
由于叙述不及代码演示,直接上代码;后面叙述下优缺点;//结构体位域及联合体解析//sizeof(s1)等于3。因为一个位域字段必须存储在其位域类型的一个单元所占空间中,不能横跨两个该位域类型的单元。struct st1{ unsigned char a : 7; /*字段a占用了一个字节的7个bit*/ unsigned char b : 2; /*字段b占用了2个bit*/ unsigned char c : 7; /*字段c占用了7个bit*/}s1;//sizeof(s2)等于2原创 2021-06-17 12:18:24 · 591 阅读 · 0 评论 -
error:cannot load driver JL2CM3.dll
error:cannot load driver JL2CM3.dll原因:不能读取JL2CM3.dll驱动解决办法:先找到keil安装路径下面的 JL2CM3.dll 具体位置原创 2020-06-30 11:36:53 · 12452 阅读 · 14 评论 -
周期和频率之间的换算
1GHz=1000MHz,1MHz=1000kHz,1kHz=1000Hz1s=1000ms,1 ms=1000μs,1μs=1000nss(秒)、ms(毫秒)、μs(微秒)、ns(纳秒)转载 2020-06-11 09:38:36 · 54434 阅读 · 0 评论 -
STM32产品名称命名规则
原创 2020-01-03 09:36:48 · 295 阅读 · 0 评论 -
静态内存、动态内存与堆栈
一、何谓静态内存、动态内存静态内存分配好后,程序运行过程中一直存在不会被释放,且一旦分配好,其内存大小就固定下来不能改变,在编译和链接的阶段就会分配好。 动态内存是程序运行过程中,根据程序的需要分配和释放,其大小可变。二、堆与栈堆和栈都是动态分配的,区别有两点:1、栈是由编译器分配与释放,堆是程序通过调用malloc或new分配,调用free或delete释放。 2、栈是线性结构...转载 2019-11-29 23:15:38 · 517 阅读 · 0 评论 -
回调函数(运用)
一、定义什么是回调函数?它首先是一个函数,这是肯定的,我举个例子:有两个函数A和B,首先应用程序将A的地址告诉B,这称之为注册回调函数,B在收到外部某个命令的时候,可以根据B的地址来调用A,这个先被传入B,后面又被B调用的函数A就称之为回调函数。这样看来,判断一个函数是不是回调函数是从它被调用的方式来定义的,那么B函数一般来说需要一个传入参数,参数类型是函数指针。二、应用场景有人可...转载 2019-11-29 23:09:07 · 239 阅读 · 0 评论 -
结构体对齐规则
先介绍三个概念:自身对齐值、指定对齐值、有效对齐值。自身对齐值:数据类型本身的对齐值,例如char类型的自身对齐值是1,short类型是2; 指定对齐值:编译器或程序员指定的对齐值,32位单片机的指定对齐值默认是4; 有效对齐值:自身对齐值和指定对齐值中较小的那个。 存储模式:小端:较高的有效字节存储在较高的存储器地址,较低的有效字节存储在较低的存储器地址。 大端:较高的有效字节存...转载 2019-11-29 20:32:30 · 1333 阅读 · 0 评论 -
STM32 把结构体存入Flash,并读取(微薄之力,已验证)
结构体对齐原则:点击浏览 在网上有看到把结构体存入数组的说法,于是自己尝试一下,确实可以。 不过也遇到问题,就是存入数据到Flash,里面有填充0x00的情况 经过分析应该是这种情况,就是结构体对齐的问题 存储模式:小端:较高的有效字节存储在较高的存储器地址,较低的有效字节存储在较低的存储器地址。 大端:较高的有效字节存储在较低的存储器地址,较低的有效字节存储在较高的存储器地址。 ...原创 2019-11-29 20:10:56 · 5007 阅读 · 0 评论 -
stm32定时器中断类型分析
一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够精啊,百度好久也没见有人解释清楚,下面开始我的探究之路。下面是所有的定时器中断类型。#define TIM_IT_Update ((uint16_t)0...转载 2019-10-09 08:20:39 · 10383 阅读 · 8 评论 -
J-LINK不能烧写(错误:JLink Warning: RESET (pin 15) high, but should be low. Please check target)
问题原因: 复位管脚 本来需要复位的 但是一直是高电平不是低电平,所以认为芯片损坏或者异常,然后让你检查目标芯片。解决办法:还有一步也就是最后一步,由于之前没有自动复位,所以呢,需要断电,然后上电,手动复位。这一步不能免去。以上是我自己测试的,可能实现功能,你们也可以尝试一下哦...原创 2019-07-20 12:53:49 · 8607 阅读 · 5 评论 -
__I、__O、__IO什么意思和处于keil里面什么位置
1、位于keil 的core_cm3.h里面2、#define __I volatile const /*!< defines 'read only' permissions */#define __O volatile /*!< defines 'write only' permissi...原创 2019-04-17 08:46:11 · 6812 阅读 · 1 评论 -
STM32的ADC采集的引脚汇总
原创 2018-09-27 10:28:31 · 12613 阅读 · 0 评论 -
STM32 F101系列的程序怎么转化为STM F103出现编译错误!
以下为解决办法(实验环境KEIL5 版本号:5.25)第一步: 以改为F103C8T6 小容量为例(MD代表中等容量64K或者128K),HD代表(大容量的256K或者512K) 更改完毕之后,编译一下!如何还是编译出现很多错误请往下看,没问题的话就不用看了!第二步:找到启动文件夹,然后找到启动文件。我找到啦,你们呢?一般都在你们的工程文件夹里面,很容易找...原创 2018-09-22 16:27:51 · 654 阅读 · 0 评论 -
STM32技术文档里面的I / O Level FT具体含义
five volt tolerant 意思的兼容5V信号电压。按照技术手册上讲的话 容忍最高电压是VDD+4.0 = 3.3+4.0=7.3V原创 2018-10-23 08:08:10 · 10926 阅读 · 2 评论 -
STM32 地址偏移问题及怎么运用
STM32 地址偏移问题就举一个例子哦 其他类推我就举STM32 里面一个结构体吧!//以下函数或者定义不是在一起的,我只是把他们拉出来,也说明是相关联的!#define __I volatile const /*!< defines 'read only' permissions只读 */#define __O vo...原创 2018-11-06 20:20:37 · 4657 阅读 · 6 评论 -
高级定时器/TIM1/TIM8 定时时间不准的问题/TIM_TimeBaseStructure.TIM_RepetitionCounter
配置定时器遇到的问题举例1:/*TIM1时钟配置*/TIM_TimeBaseStructure.TIM_Prescaler = 2; //预分频(时钟分频)72M/(2+1)=24MTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数TIM_TimeBaseStructure.TIM_P...原创 2018-11-08 19:12:50 · 10714 阅读 · 4 评论 -
IAR更改更改字体的办法,完美解决!
最近用到IAR软件,着实感到头疼!界面很不和谐,更改字体‘、烧写程序感觉和KEIL差了一点,估计用KEIL习惯了吧!经过摸索,知道了IAR软件更改字体的办法,为了以后忘了,写个文章记一下!给不会的一点建议!哈哈我用的版本是:3.10.4(不知道版本高还是低,随便下的!能用就行)第一步:打开IAR软件。如下图,是不是很丑?第二步:更改字体Tools->Options 里面 ...原创 2018-11-20 19:18:27 · 13700 阅读 · 0 评论 -
IAR不进调试界面DEBUG界面,直接烧写程序。完美解决,还可以添加到工具栏
废话不多说!操作程序版本:IAR:3.10.4下图是默认工具栏 具体操作下图但是每一次就要点好几次麻烦,好像也没有快捷键!尴尬!!!不过可以自定义工具栏,是不是给我们开一扇窗,还不错嘛! 想添加其他工具,以此类推!...原创 2018-11-20 19:32:39 · 9226 阅读 · 2 评论 -
µVISION: Error: Encountered an improper argument
译官网:http://www.keil.com/support/docs/4036.htm此知识库文章中的信息适用于:MDK-ARM版本5.x.以下本人实验版本:5.26 问题 在某些情况下,退出调试会话时可能会显示带有文本遇到不正确参数(Encountered an improper argument)的错误对话框。 如果发生这种情况,则需要使用Windows任务管理器终止μV...翻译 2019-02-15 08:53:27 · 6410 阅读 · 0 评论 -
STM32 关于外部中断线、中断源和中断服务函数的问题
STM32 关于外部中断线、中断源和中断服务函数的问题中断线问题:上图可以看出,PA0、PB0...PG0共用的EXTI0中断线,PA1、PB1...PG1共用的EXTI1中断线,也就是 编程里面的(如下图库文件),对应16个中断线,后面三个是专用的中断线,不做讨论。有人要问,假设:我设置的...原创 2018-08-27 17:17:10 · 19995 阅读 · 8 评论