因为自己要学Msp430还有ZigBee发现IAR真的挺好用,,,所以以后想着就用IAR写单片机程序,,
这次配置我不会把程序的配置弄得有条理,分开文件夹存放,,,我要把那些文件全都放到一块,,弄得乱七八糟,,,因为自己一开始学习用Keil开发32的时候,,网上的视频建工程全都是建的
很有条理,,对于一开始学的自己当时就感觉特麻烦,,,对于初学者更是感觉麻烦,,反而让初学者觉得难,,,,,所以呢!嘿嘿,,,,,,,哪样简单哪样弄
不要以为我不是一个讲究的人哈,我自己建的工程都是很有条理的,,看我Keil的,,,第一次用IAR嘛,,先怎样简单怎样建,,,,,,,,
首先你要有下载的STM32的固件库
新建一个文件夹
把库的Library复制粘贴到新建的文件夹里面
然后打开
然后
然后
然后
然后打开固件库
然后还是刚才库目录下的这个文件夹
还是复制到Libraries
刚想了想,因为CoreSupport里面就两个文件,所以就直接剪切出来得了
打开IAR
新建工作空间
新建工程
名字自己起就好
写一个啥也不干的主函数
然后编译,,现在会有许多错误,,一点点的去排除错误
我用的是STM32F10 3Z E ,,所以选择的STM32F10xxE
再编译一下
其实可以看官方提供的数据手册看一下自己的芯片属于哪一种,,,
再往上看一下
会看到下面的
再编译一下
忘了刚才先复制过去了.......就在刚才那个地方
再编译一下
如果出现
是因为版本的问题,,如果用的6.10以上版本还需要勾选上 Use CMSIS
接着
然后还要一步设置,,配置Flash地址的,
其实就是设置一下程序,变量啊的存储地方,,可以看一下下图
可以打开看一下那个文件
写一个点亮一个灯的程序
#include "stm32f10x.h" void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_ResetBits(GPIOA,GPIO_Pin_2); } int main() { while(1) { LED_Init(); } }
接着就是下载,,我现在手头上有ST-Link,,但是不知道为什么用这个软件好像检测不到我的ST-Link,,所以呢,,就生成Hex文件,然后下载到板子,需要设置软件编译生成hex
自己发现原来自己的ST-Link需要IAR6.2及以上的版本才能用,自己原来的版本是6.10的,,所以自己又安装了一个6.3的,,安装的时候自己没有把原来的卸载掉
直接覆盖安装就行
然后从新编译一下
如果用ST-Link下载---关于ST-Link的设置
hex文件的路径
好了,,关于为什么要定义这个 USE_STDPERIPH_DRIVER
先查找一下
对了上面的工程很乱,自己可以多弄几个分组,放不同功能的文件就行,那些文件的功能可以百度一下就知道.没有什么是百度一下解决不了的事情,如果有那就是两下.....,那样即好看又方便管理
可以看别人怎样做的,然后学习学习.祝学习愉快
最后附上程序,,一个就是上面比较乱的,,一个整洁点的,,还有3.5的库
http://pan.baidu.com/s/1crKq5K 密码:j8r8 这个模板是我用6.10的,如果用以上版本,就按照上面的方法改一下
链接:http://pan.baidu.com/s/1qXJ1S6K 密码:qxlv 这是IAR6.3版本的
还忘了一件事
关于为什么选择Use CMSIS 和修改那个文件