IAR里面STM32工程使用printf】的更多相关文章

1. 首先打开工程的options设置 2. 设置编译器的预宏定义,添加宏定义_DLIB_FILE_DESCRIPTOR 3. 修改文件DLib_Defaults.h DLib_Defaults.h #ifndef _DLIB_FILE_DESCRIPTOR #define _DLIB_FILE_DESCRIPTOR 1 #endif 4. 添加putc函数 int fputc(int ch, FILE *f) { while(!(USART_DEBUG->ISR & USART_ISR_T…
stm32是一个当下非常流行的微控制器,很多人都加入了学习stm32的行列中,常用的stm32编译器有IAR和mdk两种,接下来是利用stm32固件库3.5在IAR下的建立的工程模板历程: 1.在常用的文件夹下新建立一个文件夹,根据个人喜好,分别建立如下几个文件夹,用于分别存放固件库中的文件和用户自己的文件 2.将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\…
1.   模板工程的创建(超级详细版,使用的是keil 4.5版本) 1.1创建工程目录 良好的工程结构能让文件的管理更科学,让开发更容易更方便,希望大家养成良好的习惯,使用具有合理结构的工程目录,当你着手于较大的软件项目时,类别分明,层次合理的工程目录结构会让你的开发管理化繁为简. (1)首先在一个目录下创建主文件夹,名字按需求取,这里取名为:(0)工程模板 (2)在该文件夹里分别建立名字为Project和Source的文件夹.其中Project文件夹用来放置工程文件,而Source用来放置程…
转载自康神博客:http://blog.csdn.net/u013298300/article/details/50243935 在LINUX下开始一个STM32工程 在LINUX下开始一个STM32工程 一安装工具 二 如何工作 1 需要作的工作 2 工作分析 21 makefile分析 22 链接器脚本分析 3 分析结果 三开始工作 1 创建文工程目录 3 编写Makefile 32 src子目录Makefile 33 arch子目录Makefile 34 lib子目录Makefile 35…
STM32工程模版,看过来 ST库源码去官方下载 创建工程目录 doc:存放说明文档 lib:存放库文件 listing:存放编译产生的中间文件 output:存放生成的文件 project:存放工程文件 user:存放用户文件.自己编写的源文件 拷贝库文件 cmsis存放ARM公司提供的内核函数接口文件,fwlib存放st公司提供的函数接口文件 1: 拷贝到 2: 拷贝到 3: 拷贝到 4: 拷贝到 创建KEIL工程 添加如下组 添加相应文件到组中 指定输出目录到output,并生成HEX文件…
因为自己要学Msp430还有ZigBee发现IAR真的挺好用,,,所以以后想着就用IAR写单片机程序,, 这次配置我不会把程序的配置弄得有条理,分开文件夹存放,,,我要把那些文件全都放到一块,,弄得乱七八糟,,,因为自己一开始学习用Keil开发32的时候,,网上的视频建工程全都是建的 很有条理,,对于一开始学的自己当时就感觉特麻烦,,,对于初学者更是感觉麻烦,,反而让初学者觉得难,,,,,所以呢!嘿嘿,,,,,,,哪样简单哪样弄 不要以为我不是一个讲究的人哈,我自己建的工程都是很有条理的,,看我…
网上基于MDK的移植数不胜数,但是基于IAR的移植几乎没有,因为官方的例程就是基于IAR的,所以移植起来很简单,没人介绍,但还是得小心谨慎,一不小心就出错,对于新手来说,查找错误可不是那么容易的.IAR建立工程,这里就不介绍. 以下红色部分需要与MCU型号对应 (1)在官网下载适合自己STM32的uCOS-II库,连接如下,我用的MCU是STM32F103VCT6,属于大容量的,所以选择的库是STMicroelectronics STM32F103ZE. https://www.micrium.…
今天给小伙伴分享一篇给stm32新建工程模版 1.首先打开IAR,就是这个样子 2.再建一个目录文件夹 3.建立一个工作空间,以及建好工作空间如右图所示 4.接下来建立工程,Project--------Creat New Project 点击Empty project-------------再点击OK 选择你之前创建的目录里面,取个名字再保存就行了 保存之后就是这个样子 5.这个时候再点保存,就像下图,会跳出一个窗口(如图),这个是保存你的工作空间,取个名字(用原来的工程名字都行),点保存就…
今天给小伙伴分享一篇给stm32新建工程模版 1.首先打开IAR,就是这个样子 2.再建一个目录文件夹 3.建立一个工作空间,以及建好工作空间如右图所示 4.接下来建立工程,Project--------Creat New Project 点击Empty project-------------再点击OK 选择你之前创建的目录里面,取个名字再保存就行了 保存之后就是这个样子 5.这个时候再点保存,就像下图,会跳出一个窗口(如图),这个是保存你的工作空间,取个名字(用原来的工程名字都行),点保存就…
这件事还是要写一篇博客了,为了后来的人不换致命性的错误 辛辛苦苦写的一个四个不同的引脚不同时钟不同寄存器分别产生四种不同占空比不同周期的信号方波程序超级经典  PS:页尾上传PWM波形产生工程附件供大家学习 完完整整的成功运行,可就在我关闭工程后第二次打开就出现致命性错误  !先上图: 自己查不到问题首先问百度吧! ---------------和我一样的的问题,赶紧进去,一定能帮我解决的,论坛里很多大神呢  网址:http://www.amobbs.com/thread-5464853-1-1…
前段时间一直在折腾linux系统上STM32的开发,网上一顿搜,费劲九牛二虎之力终于把环境搭好了(现在都有点忘了,后面再折腾环境搭建一定要写个教程,今天先不写了). 自从环境搭好之后,就基本抛弃MDK了,用了几个月,感觉Eclipse实在比MDK好用一百倍,用它写代码简直就是一种享受,下面趁着还熟,记录一下工程建立步骤: 先来张整体效果图: 第一步:File-new,新建project,选择C Project,如下图: 第二步:选择工程模板(STM32F10X C/C++Project),填写工…
一.在IAR官网下载IAR for MSP430 软件 https://www.iar.com/iar-embedded-workbench/#!?architecture= 选择MSP430,然后 下载下来后,先安装,再破解.安装,破解IAR软件和教程看云盘文件 链接:https://pan.baidu.com/s/10tc2w93pKkvZiuLXZ3We8A 提取码:jfoh 二.进入TI官网下载芯片库文件包 http://software-dl.ti.com/msp430/msp430_…
转载来自:http://emouse.cnblogs.com 1.1 开发工具与开发环境 1. 软件版本 本节所使用Keil MDK 为目前的最新版V4.21.其他版本差别不大,读者可以根据自己使用的版本进行操作或者从Keil的官网下载新版本.使用的标准外设库为目前最新的V3.5版本.使用的开发调试工具为JLINK-V8,使用的驱动版本为V4.08l. 2. 建立工程目录(第一步) 首先先建立一个用于存放工程的文件夹,此处命名为STM32, 在文件夹下分别建立LIB.USER.MDK三个文件夹,…
转载自:https://blog.csdn.net/u011976086/article/details/54342447#commentBox 之前使用过ucos,freertos,但是这个keil自带的RTX倒是没有在项目中使用过,只有在安福莱的论坛中,头比较丰富的教程,网上正好看到了这篇文章,很详细,有截图,因此转载,自己也按照他的方式实现了, 1.keil5安装好后,自带RTX的系统,像以前的RTX51一样, 2.keil5默认使用stm32的标准外设库的,不像cubemx使用hal库,…
printf复习 当我们写printf("%d\n", 1);的时候,printf函数并不能通过C语言语法得知第二个参数是int类型.printf是一个变参函数(variadic function): int printf(const char *restrict format, ...); 参数的类型都是通过格式串format推导出的.如果参数类型与格式串中指定的不匹配,或提供的参数数量少于需要的,将导致未定义行为. 由于参数类型是动态的,printf和scanf比静态类型的std:…
1) 2)保存 3)选择公司和芯片的型号,STM32F103C8T6,64kB Flash, 20kB SRAM. 4)手动添加启动代码 5)新建如下文件夹 6)回到工程,选中target,右键Add Group或点 7)设置输出文件保存位置 8)设置链接文件保存位置 9)添加宏定义 10)添加库文件搜索路径 11)配置JLink 先点 12)编译和下载 附录: 启动文件后缀英文缩写: cl:互联型产品,stm32f105/107系列 vl:超值型产品,stm32f100系列 xl:超高密度(容…
一.导致异常的原因很多,例如:直接使用未分配空间的指针.栈溢出等一场非法操作便会使程序进入HardFault异常状态.下面介绍怎么找出程序中的异常. 接下来在keil_MDK工程中,编译代码,并debug,之后全速运行,可以看到如下图所示程序进入HardFault异常. 如下所示我们找到SP寄存器,0x200045B8即为栈地址,栈里面的值依次为R0~R3.R12.PC(Return address).xPSR(CPSR或SPSR).LR.如图我们看到划红线的地方,注意从右往左看.分别为0x08…
最近测试以前的一个程序,一般都是打开以前写的程序修改参数直接测试 但是发现以前的编译后出现错误. 奇怪了,以前的出现都是调试好了的啊,一般都是没有错误的,迅速找问题 跳转到错误代码行 代码区域 Heap_Size EQU 0x00000000 AREA HEAP, NOINIT, READWRITE, ALIGN= __heap_base Heap_Mem SPACE Heap_Size __heap_limit PRESERVE8 THUMB ;指定为THUMB代码集 ; Vector Tab…
‑6 MDK详细版本信息 ‑8保存路径的选择 ‑9选择芯片型号 ‑10拷贝启动代码选择 ‑11选择 Manage Comoonents ‑12编辑组并添加对应文件 ‑13工程管理文件列表 ‑14选择进行参数设置 ‑15 Target选项设置 ‑16 Output选项设置 ‑17 Listing 选项设置 ‑18 C/C++选项设置 ‑19添加头文件包含路径 ‑20调试工具设置 ‑21 J-Link 连接 ‑9  SWJ调试端口引脚 SWJ-DP端口 引脚名称 JTAG 调试接口 SW 调试接口…
1. 新建文件夹          DOC文件夹:        可以存放readme.txt等项目文档     Library文件夹:    可以存放ST库源码,直接复制ST库的源代码到Library文件夹,另外startup只需复制和芯片对应的.s文件即可,一般存放在 \0-ST库3.5.0源码\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm     Listi…
此致:特别感谢作者Lomo-chen所写的文章给我的帮助,我尝试做了一下,成功了,今天整理一下. 一.建立文件夹: 1.在桌面或其他盘建立一个文件夹,此处名称为Test,用来存放工程程序. 2.在Test文件夹下,建立User.Driver.List.Output三个文件夹. --  User (存放main函数文件) -- Driver (存放驱动函数文件) -- List  (存放编译文件) -- Output  (存放输出文件) 二.创建工程 1.打开Keil软件,选择Project --…
出错原因: 工程FWLIB目录下没有添加stm32f10x_tim.c文件. 添加即可. 一般利用库开发,将ppp.c(ppp.c又调用了库stm32f10x_xx.h)写好之后的调用步骤: 举例使用led.c: 1,将led.c和led.h拷贝到工程下的USE目录下,并在工程目录中加载led.c文件. 2,在main.c的头文件包含区中包含led.h,并在main.c中调用相关子函数. 3,因为led.c又包含了标准库文件所以还要两步 1>,在工程FWLIB目录中添加stm32f10x_gpi…
1.下载keil5教程参考:https://blog.csdn.net/qq_36854651/article/details/82632931 2.安装完keil5后,创建一个空的目录存放工程 3.打开keil5,Project——>New Uvision Project,保存在那个空的目录下 4.接下来会让你选择芯片:我自己选择芯片是STM32F103C8T6 5.配置环境:勾选一些必须文件 6.按照需要勾选自己所需要的文件,然后点击ok 7.在目录下,创建USER文件夹,用来存放源码 8.…
keil uvison 是用来开发 单片机的,Keil mdk 是用来开发 ARM 的. 芯片型号是:STM32F103RB6 1,新建工程 配置属性 晶振为8M 根据实际晶振选择 生成 HEX 文件,选中 2,复制启动文件,头文件,这里为了简单,全部放在了项目文件夹中,不像有的教程,要建这个,配置那个,新手容易头大. 启动文件在,STM32F10x_StdPeriph_Lib_V3.5.0.rar 里面,解压LIB库文件. 复制 STM32F10x_StdPeriph_Lib_V3.5.0\L…
我们可以双击错误,然后会自动定位到文件 stm32f10x.h 中出错的地方,可以看到代码: #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined(STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD)&& !defined (STM32F10X_HD_VL…
然后会弹出manage run -time environment的运行环境界面,必须选择的有CMSIS下的core和device下的startup,至于其它的根据你需要的外设, 在stdperiph Driver里面选择相应的外设驱动,比如ADC.GPIO等. 需要注意的是,在配置运行环境时,正确配置时,打钩的地方是绿色.未正确配置的话,打钩的地方是黄色.因为往往你选择一个配置,一般还需要选择 另外的几个配置配合才能正确配置.比如你要用到外设GPIO,选择GPIO后,选择区域会变成黄色,表示你…
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) http://home.eeworld.com.cn/my/space-uid-338727-blogid-47176.html 在STM32串口通信程序中使用printf发送数据,非常的方便.可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了.   下面就说一下使用printf需要做哪些配置.   有两种配置方法:   一.对工程属性进行配置,详细步骤…
转载:http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=168481&page=1#pid737250  一般我们使用STC单片机都是基于老旧的KEIL v4.0平台,STC官方给的头文件也是只支持keil v4.0平台.我们如果要在其他平台比如IAR上开发STC8ASK64S4A12,就没法实现,网上也没有人做过类似的事情.市面上有不少热门的单片机,比如STM32系列单片机不仅支持keil v5.0平台,而且支持IAR平台,这将对…
通过USART1向计算机的串口调试助手打印数据,或者接收计算机串口调试助手的数据,接下来我们现STM32工程上的printf()函数,方便用于程序开发中调试信息的打印. 方法一:使用MicroLIB库 1.1 KEIL-MDK中的Use MicroLIB选项 在MDK开发环境中 MicroLib是缺省c库的备选库,它可装入少量内存中,与嵌入式应用程序配合使用,且这些应用程序不在操作系统中运行. MicroLib进行了高度优化以使代码变得很小,功能比缺省c库少,不具备某些ISO c特性,部分库函数…
在IAR中编译STM32工程,遇到 Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned int __iar_builtin_REV16(unsigned int)" (declared at line 199 of "$PROJ_DIR$\CMSIS\core_cm3.h 1124 在core_cm3.h中找到如下行,注释掉“#include <…