
STM32
文章平均质量分 58
TYW----子曰小玖
人生最重要的不是所在的位置,而是所朝的方向。
展开
-
详解KEIL的分散加载文件
ARM C 库提供了该函数的多种实现,并且可以从分散文件中提供的信息中自动为您选择正确的一种。要选择两个区域内存模型,请在名为和的分散文件中定义两个特殊的执行区域。两个区域都有该EMPTY属性。这会导致库选择只能指定一个或可以通过定义名为单一执行区域使用组合的栈和堆区域,与EMPTY属性。这会导致使用符号和的值。如果您重新实现,这将覆盖所有库里面的实现。转载 2023-01-06 09:58:43 · 1282 阅读 · 1 评论 -
__weak 和 __attribute__((weak)) 关键字的使用
用__weak定义的函数弱输出其符号。弱定义的函数的行为类似于正常定义的函数,除非将同名的非弱定义的函数链接到同一镜像中。如果在同一镜像中同时存在非弱定义函数和弱定义函数,则对该函数的所有调用都会解析为调用非弱函数,否则直接使用弱定义的函数(与上面的若声明不同)。如果可以使用多个弱定义,则除非使用链接器选项,否则链接器会生成一条错误消息。在这种情况下,链接器随机选择一个供所有调用来使用。/* a.h!!!注意所在文件不同!!!*//* a.c!!!注意所在文件不同!!!*/{FuncB();转载 2022-09-30 13:42:17 · 4943 阅读 · 0 评论 -
单片机三种烧录方式ICP、IAP和ISP详解
4G模块和目标板通讯,通讯中包含是否更新的位,如果主板接收到需要更新的位,就往Flash中写入一个标志位,比如’P’,之后程序跳到第一段程序Boodload程序中执行,首先判断Flash中的是否有更新程序的标志位’P’,如果有则通过规定的协议进行更新应用程序中的程序,更新完毕后清除Flash中的更新标志位,跳转到应用程序中去执行。IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。新唐官方给了详细的描述,...转载 2022-08-29 17:00:15 · 2337 阅读 · 0 评论 -
嵌入式软件调试方法及几个有用的工具
调试经验平时开发调试时,可能会有这么两种情况:独立开发,自己调试 协作开发,联合调试1、独立开发一些小的项目,如果整个项目是我们自己开发的话,调试起来也比较方便,因为是我们自己开发的,所以会比较熟悉一些。我的习惯是:分模块来进行开发,每开发完一个模块就先想办法测一下这个模块,没问题了再集成到工程里。模块初步开发、测试时,代码可以随意一些,调好了之后,再重新梳理、整理代码,集成到工程里。自测的方式:有一些代码直接对应着功能,直接测试看功能正不正常;有一些代码可以通过log打印来看是否正转载 2022-05-01 17:23:32 · 753 阅读 · 0 评论 -
Source Insight工程名重命名技巧
因为需要比较远端和本地的两个工程文件,工程名都一样了,所以想重命名一个,方法如下:Source Insight的工程文件有:{*.IAB, *.IAD, *.IMB, *.IMD, *.PFI, *.PO, *.PR, *.PRI, *.PS, *.SearchResults, *.WK3} 等后缀。具体修改过程:1 删除 *.SearchResults, *.WK3两个文件2 其余文件全部重新命名,例如 XXX.IAB --> XXX_local.IAB然后就可以打开 *.PR 的文件了,转载 2021-12-10 10:12:16 · 2108 阅读 · 0 评论 -
SourceInsight4.0的使用--详细介绍source insight4使用的文章
一、项目管理1、新建一个项目快捷键Alt+Shift+N可以打开新建项目对话框,然后根据提示填好项目存储位置,源文件位置等,然后会出现添加删除项目文件对话框,选中自己想要编辑和浏览的文件添加即可,这样就建好了一个项目。2、添加和删除项目文件(1)、在添加删除文件前,可以先设置文件过滤器,菜单栏-选项-文档选项,就可以看到文件过滤器了,怎么设置应该是一目了然的。(2)、菜单栏-项目-添加或删除文件,即可打开添加和删除项目文件对话框。3、关闭项目、打开项目、删除项目关闭项目:Alt+Shift+W转载 2021-12-10 09:42:08 · 936 阅读 · 0 评论 -
Source Insight添加新文件类型
0x00 前言 最近用Source Insight分析一开源软件代码发现,在linux下的C++编译文件格式为.cc,Source Insight在默认配置下,添加全部文件怎么都找不到.cc文件,故查了留个笔记0x01 设置 在创建工程前,先添加上没有被加载的文件格式:Options->Document Options->Document type->选择你想添加的文件类型,可以直接在选种类型后出现的框中添加;若不存在预定义的此类型,可以点击add type添加新的文原创 2021-12-10 09:24:14 · 996 阅读 · 0 评论 -
SourceInsight 快速、精确导入 IAR/MDK 工程脚步--附:源码
其实这个脚本很早之前就在阿莫论坛发布了,起因就是某个项目的SDK很大,结构多、路径深,使用source insight看代码的时候总是提示多处定义,效率很低,然后便有了这个脚本。前段时间将脚本完善了一下,在此记录一下实现方法,藉此希望更多的朋友提出建议。获取地址点这里!!!https://github.com/wxh0000mm/si4project_filelist使用方法将脚本放在工程文件(.uvproj、.uvprojx、.eww)所在的路径下,编译工程后运行一下脚本(一晃而过就是成功了,停下转载 2021-12-10 09:13:12 · 3421 阅读 · 0 评论 -
Keil 5 Device里面器件为空问题
打开工程时提示,没有相关芯片:把相应的芯片包装好后,Device为空,不能选择芯片:原因可能是:使用Keil5打开了比较老的工程文件。Keil5的工程文件后缀是.uvprojx,对老的工程文件可能支持不好,老的工程文件后缀为.uvproj解决:Project-Manage-Migrate to Version 5 Format,把工程文件格式转换为.uvprojx即可。...转载 2021-07-26 21:28:47 · 6013 阅读 · 1 评论 -
STM32复用功能,一张图读懂串口与GPIO口复用功能的关系
什么是普通功能输入输出?普通功能输入输出类似于:大厅《--》门《----》室外的关系,大厅只需要经过大门即可到室外,从室外经过门也可以到达大厅。什么是复用工功能输入输出?复用功能输入输出类似于:房间《--》大厅《--》门《--》室外的关系;从房间到室外,需要经过大厅,在经过大门才可以到达室外;从室外到房间,也需要经过大门1) 当给TDR寄存器赋值时,数据会通过移位寄存器发送到芯片外部2) 接收数据时是一位一位的接收,当接收到8位数据时,数据会从“接收移位寄存器”搬到“接收数据寄存器”RDR。.转载 2021-05-27 10:16:20 · 1018 阅读 · 0 评论 -
keil的软件逻辑分析仪( logic analyzer)使用教程
keil的软件逻辑分析仪(logic analyzer)使用教程在keil MDK中软件逻辑分析仪很强的功能,可以分析数字信号,模拟化的信号,CPU的总线(UART、IIC等一切有输出的管脚),提供调试函数机制。编译器版本:Keil5.14;软件功能:GPIOA11持续产生周期为2ms,占空比为50%的脉冲方波。接下来,我们探讨如果用Keil编译器自带的逻辑分析仪来捕捉GPIOA11的脉冲方波。 个人看法:如果要分析时序,建议还是用在淘宝单独买一个逻辑分析仪。毕竟Keil自带的裸机分析仪的上位机...转载 2021-05-27 10:13:29 · 8278 阅读 · 1 评论 -
ST USB CDC从理论到实践
本文摘自ST官网的“USB CDC类入门培训”。整理的内容是我能够看得懂的,认为比较实用的,记录下来,以便以后查阅,同时也把原文档中的笔误给更正了一下。若要看更详细的可以去ST技术文档中查看,链接为:http://bbs.21ic.com/forum.php?mod=viewthread&tid=726814&page=1&extra=#pid42250641 USB CDC类基础理论知识介绍1.1 USB CDC类、USB2.0标准与PSTN之间的关系CDC(Commu转载 2021-05-20 09:13:13 · 1072 阅读 · 0 评论 -
PC OF target system has unexpected value after bland checking
STM32板子烧写错误:PC OF target system has unexpected value after bland checking解决方法:在J Flash 里选择target---->unsecure chip。原创 2021-04-30 13:51:46 · 1313 阅读 · 0 评论 -
Keil5下载芯片包并导入教程
Keil5下载芯片包并导入教程如果在使用Keil5安装芯片包时显示找不到包的错误,可以通过手动下载包后导入的方法解决。操作如下: 打开下载芯片包的界面 在左侧双击你需要的芯片 点击右侧你需要的芯片包的Install按钮 单击选中下方报错的行 复制后粘贴到浏览器网址栏 去掉头尾留下地址,按回车即可下载 下载完毕后回到下载芯片包界面,点击file里的import选项 在弹出窗口里找到之前下载的文件导入 完..转载 2020-12-08 10:40:18 · 19954 阅读 · 1 评论 -
Keil官网下载包不显示的解决方法
Keil 5(MDK 5)包管理器用不了,包无法下载,这时候我们需要到官网去下载这些包,但有人可能会发现打开https://www.keil.com/dd2/pack/这个页面的时候,发现并没有可以用的包下载:我通过浏览器控制台查看发现原来是下面的页面需要用jquery来加载,但是这个页面所引用的jquery路径我们访问不了:为了能够正常显示页面,我想到了可以用浏览器插件的方法来替换这个引用的路径,改为我们可以访问的cdn地址,如果你是谷歌浏览器或者微软的新edge浏览器,可以到这个地址下载安装插件:转载 2020-12-08 10:35:08 · 2105 阅读 · 0 评论 -
Error: User Command terminated, Exit-Code = 1解决办法
刚接手一个项目,别人给我一个keil工程,安装完keil4,第一次用keil4打开,编译时就出现了Error: User Command terminated, Exit-Code = 1在网上求助,好多人都有这个问题,原来是MDK下要靠fromelf.exe 文件生成.bin,所以当整个工程的文件夹的路径遍了,编译时就会出现这个问题,现在大家可能知道解决办法了把,就是把你新装fromelf.exe文件的路径改过来就是的了。改成fromelf.exe所在路径就好了...原创 2020-12-07 16:34:35 · 2398 阅读 · 0 评论 -
STM32F4XX的DFU功能
相当部分的 STM32芯片都带USB模块,有时我们会考虑利用STM32芯片的USB模块进行程序代码的下载或升级。USB协议中有专门针对设备固件升级的类协议,即可以通过DFU类协议进行产品固件的加载或更新。关于STM32产品的DFU程序下载和升级,ST官方有相关的资料文档。可以去www.stmcu.com.cn或者去www.st.com搜索DFUse下载相关资料。有个用户手册UM0412详细介绍了如何利用ST官方软件工具DfuSe进行相关编程操作。顺便提醒下,下载DfuSe安装包解压运行Dfu..转载 2020-07-03 14:27:33 · 5337 阅读 · 2 评论 -
STM32 USB的DFU功能
最近用到USB,后来发现了STM32F103可以程序实现DFU,在网上搜到代码对比官方文件发现是大容量FLASH的DFU,我用的是STM32F103C8T6,属于中容量。自己对着官方例程修改了网友的代码,改成中容量后可以使用DFU更新固件。修改过程中要注意几点1.在库函数“void SystemInit (void)”结尾处添加向量表偏移量,开全局中断(在dfu中关闭了中断,在此处打开)。如下图2.修改MDK app程序偏移量,如下图:(预留了20K FLASH给USB DFU使用,所以APP代转载 2020-07-03 14:23:10 · 3294 阅读 · 2 评论 -
CMSIS 基于Arm Cortex的微控制器的软件接口标准
CMSIS Introduction CMSIS Components Motivation Coding Rules Validation License CMSIS Software Pack Revision History IntroductionThe...原创 2020-03-01 11:41:40 · 1329 阅读 · 0 评论 -
STM32开发 -- 开发环境搭建
https://blog.csdn.net/qq_29350001/article/details/79472991TBOX开发用到的芯片GD32F105,现在需要搭建一下开发环境。一、Keil下载安装首先需要下载安装软件Keil。 参看:Keil uVision4使用总结 参看:keil专栏 需要注意的是,GD32F105为ARM® Cortex™ -M3 32-bit MCU,...转载 2019-01-28 15:47:14 · 802 阅读 · 0 评论 -
Stm32单片机开发KEIL启动文件汇编语言详解
文章目录简介 启动文件汇编代码相关指令 堆栈空间的定义 初始化中断向量表 复位中断函数 中断函数的弱(WEAK)声明 用户栈和堆初始化简介我们在做单片机编程的时候,大部分都是用KEIL自带的启动文件来使程序进入C语言main函数,然后进行C语言编程开发的工作。那么这个启动文件到底做了什么呢?相信朋友们肯定和我一样好奇,想弄明白启动文件到底都干了些什么。那么本文就来介绍下,本文...转载 2019-01-08 10:27:29 · 3812 阅读 · 1 评论 -
Keil MDK从未有过的详细使用讲解
转自博客:http://blog.csdn.net/zhzht19861011/article/details/5846510http://blog.csdn.net/yx_l128125/article/details/9144887熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的。但ARM内核毕竟不同于51内核,因此无论在设置上还是在编转载 2017-09-28 15:16:36 · 1721 阅读 · 0 评论 -
STM32 IO口模拟串口通讯
转自:http://ziye334.blog.163.com/blog/static/224306191201452833850647前阵子,调项目时需要用到低波特率串口通讯(300的波特率),才发下发现在正常情况下(PCLK1时钟频率为72M,PCLK2时钟频率为36M):STM32的USART0的最低波特率只能设置到1200,;而USART1最低波特率只能设置到600。怎么设置ST转载 2017-09-06 10:34:46 · 27505 阅读 · 20 评论 -
STM32 IAP在线升级详解
转自:http://blog.csdn.net/yx_l128125/article/details/12992773/(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP + APP == >双剑合一”链接稍后发)一,在进入主题之前我们先了解一些必要的基础知识---- stm32系列芯片的转载 2017-09-05 11:32:20 · 18481 阅读 · 0 评论