神舟IV学习笔记(一)设置IAR开发环境与流水灯

发布者:快乐舞蹈最新更新时间:2017-02-17 来源: eefocus关键字:神舟IV  IAR  开发环境  流水灯 手机看文章 扫描二维码
随时随地手机看文章

小弟刚刚拿到神舟的板子,那是相对的激动。好大的液晶屏幕,好多资料哦,好强大啊~~。

首先需要准备的是《STM32F10xxx参考数据》,我看的是2010年1月10日的版本,不知道今年有没有更新中文用户手册。STM32F107xx微控制器是互联性产品,有些部分不一样。STM32的开发环境有三种,Keil MDK /IAR EWARM/RIDE三种开发环境,个人感觉IAR比较好点,主要是用破解版的比较稳定。

 

第一步选择器件,根据芯片的不同选择不同,如图1所示

第二步:设置路径文件,其中$PROJ_DIR$\表示的是当前路径,$PROJ_DIR$\..表示的当前路径的上面一级。Defined symbols表示的是宏定义:USE_STDPERIPH_DRIVER 使用库函数

STM32F10X_CL 互联性器件

第三步是设置文件输出的格式,常用的是HEX输出,也能设置BIN格式的输出


 

 


第四步是设置链接文件:也就是告诉编译器,器件的RAM和ROM的起始范围与大小。


 

 

下面我先做下第一个实验—流水灯实验。我喜欢把每个功能做成两个文件,一个是C文件(源代码),一个是H文件(头文件)。下次需要这个功能的时候,只需要把这两个文件拷贝到工程当中,简单方便。下面是我写的代码:

LED.C

#include "led.h"

void LED_Configuration(void)

{

  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); //打开时钟

  GPIO_InitStructure.GPIO_Pin =  LED1 | LED2|LED3|LED4;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

  GPIO_Init(GPIOD, &GPIO_InitStructure);

}

LED.H

#ifndef __LED_H

#define __LED_H

#include "stm32f10x_conf.h"

#define LED1     GPIO_Pin_2

#define LED2     GPIO_Pin_3

#define LED3     GPIO_Pin_4

#define LED4     GPIO_Pin_7

#define LED1_ON() GPIOD->BRR = LED1

#define LED2_ON() GPIOD->BRR = LED2

#define LED3_ON() GPIOD->BRR = LED3

#define LED4_ON() GPIOD->BRR = LED4

#define LED1_OFF()       GPIOD->BSRR = LED1

#define LED2_OFF()       GPIOD->BSRR = LED2

#define LED3_OFF()       GPIOD->BSRR = LED3

#define LED4_OFF()       GPIOD->BSRR = LED4

void LED_Configuration(void);

#endif

MAIN.C

void delay(unsigned int num)

{

  while(num--);

}

int main(void)

{

  /* Setup STM32 system (clock, PLL and Flash configuration) */

  SystemInit();

  LED_Configuration();

  /* Add your application code here

     */

 

  /* Infinite loop */

  while (1)

  {

    LED1_ON();

    delay(1000000);

    LED1_OFF();

    LED2_ON();

    delay(1000000);

    LED2_OFF();

    LED3_ON();

    delay(1000000);

    LED3_OFF();

    LED4_ON();

    delay(1000000);

    LED4_OFF();

  }

}

 

 


最后是添加文件,附近有我设置的IAR的模板,大家可以参考下。这样的话就生成的一个模板工程。下次需要写程序的时候,只需要复制这个模板,而没有必要做上面重复的设置啦。关于启动文件的选择:V3.1.2版本的库提供了四个启动文件,分别对应不同型号芯片。

startup_stm32f10x_ld.s对应的是低密度芯片,ld是Low-density的缩写,比如STM32F101xx and STM32F103xx系列中FLASH在16K到32K范围内。

startup_stm32f10x_md.s对应的是中等密度芯片,ld是Medium-density的缩写,比如STM32F101xx and STM32F103xx系列中FLASH在32K到128K范围内。

startup_stm32f10x_hd.s对应的是高密度芯片,ld是High-density的缩写,比如STM32F101xx and STM32F103xx系列中FLASH在256K到512K范围内。

startup_stm32f10x_cl.s对应的是互联型芯片,ld是Connectivity-line的缩写,比如STM32F105xx and STM32F107xx系列的芯片。

神舟IV学习板采用的是STM32F107VCT6芯片,对应的是互联型,使用需要选择的启动文件是startup_stm32f10x_cl.s。


关键字:神舟IV  IAR  开发环境  流水灯 引用地址:神舟IV学习笔记(一)设置IAR开发环境与流水灯

上一篇:神舟IV学习笔记(三)蜂鸣器与串口1打印
下一篇:SPI模式下MCU对SD卡的控制及操作命令

推荐阅读最新更新时间:2024-03-16 15:33

单片机模拟空调温度控制器,按键设定温度和控制风力
空调温度控制器,LCD1206显示,按键设定温度和控制风力,流水灯模拟风力,红色LED指示灯代表加热电机工作,蓝色LED指示灯代表制冷电机工作。 单片机源程序如下: /*用于QX—mini5学习板*/ #include reg52.h #include LCD1602.h #include DS18B20.h //#include uart.h sbit jdq = P0^0; //用蜂鸣器代替继电器 sbit key1=P3^5; //设定温度加 sbit key2=P3^4; //设定温度减 sbit key3=P3^3; //设定风力加 sbit
[单片机]
单片机模拟空调温度控制器,按键设定温度和控制风力
IAR IDE学习之---关于工程设置中“program entry”作用的猜想
1、问题 一个工程包含众多源文件,需要指定一个入口地址,如IAR IDE中默认的入口地址(符号或者标号) __iar_program_start (在$TOOLS_DIR$armlib目录下的cstart.s文件中定义)。对于一般程序而言,入口地址就是程序首先被执行的指令(函数)。然后,在嵌入式系统中,必须考虑芯片复位时的异常向量表,在异常向量表中的复位异常跳转的地址,也是程序首先执行的地址。那么此时的program entry和复位异常跳转地址的孰是孰非?哪个才是真正的入口执行? 毫无疑问,肯定是复位异常首先被执行,那为什么需要配置 program entry ? 2、这得从系统的角度去寻找答案。在main函数运行之
[单片机]
<font color='red'>IAR</font> IDE学习之---关于工程设置中“program entry”作用的猜想
【ARM】led·fs2410流水灯
开发环境 1、硬件平台:FS2410(s3c2410) 2、主机:Ubuntu 12.04 LTS LED原理图 LED的GPIO的配置 配置GPFCON寄存器,设置GPF4-7为输出 配置GPFDAT,设置LED灯亮与灭 主要步骤 通过设置GPFCON将GPF4-7设置为输出 设置GPFDAT,可以将led灯亮或灭,GPFDAT的相应位置1灯灭,置0灯亮 源代码 NAND flash启动 关狗 设置栈 //start.S .text .global _start _start: #define WATCHDOG 0x53000000 ldr
[单片机]
【ARM】led·fs2410<font color='red'>流水灯</font>
STM8固件库+IAR 之--GPIO
单片机必然先从GPIO开始,开发板上的三个led灯分别是PD0,PD2和PD3,KEY 则是PD7,所以GPIO初始化只初始化PD口即可,直接在main.c里写代码,话不多说,直接上代码: #include stm8s.h /*========内部高速时钟初始化========*/ void init_clk(void) { CLK_DeInit(); //寄存器复位 CLK_HSICmd(ENABLE); //内部高速时钟使能 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2); //内部2分频 8M } /*========GPIO初始化========*/ vo
[单片机]
开发环境搭建 (一) OK6410A 开发环境 4 更改环境 OK
从sd卡中 的 u-boot(1.1.6) 启动 u-boot load sd卡中 第1个分区(被格式化为fat16)的kernel(4.0),然后kernel 启动. // 如果要一个分区格式化为fat16,则这个分区的大小不能超过 2GB kernel 挂载 sd卡中的第2个分区(被格式化为ext3)为根文件系统,并执行 /linuxrc /linuxrc 作为 进程1 启动 u-boot 与 启动模式 uboot(1.1.6) 的配置 forlinx_sd_ram256_config uboot镜像通过 SD_Writer.exe 写入到sd卡中(写入步骤参考附录) sd卡分区1(从0开始,
[单片机]
在MDK开发环境下的STM32工程结构
最近迫于找工作的压力,我不得不加快嵌入式学习的步伐,不再和AVR、PIC8位机纠缠了,开始学习32位单片机。开发环境如下:STM32F103RBT6+MDK+JLINK。今天打开了第一个程序:流水灯。程序内容很简单,只是这个工程的结构看上去很是复杂,不像之前一个工程里就那么几个C源程序和头文件。因此,今天很有必要讨论一下这个工程的结构,相当于一个程序的骨架。 其实认真研究一下,会发现例程工程和之前我们使用编写51单片机程序用的工程大同小异。至于刚开始感觉这个结构很复杂,我的原因是之前编写51程序是将所有的代码几乎都写进主源程序里,头文件和多个源程序的使用很少。开发STM32时,因为有了官方的封装的外围器件驱动代码库,这样我就不得
[单片机]
IAR调试S3C6410的笔记(二)
简单地说,IAR调试S3C6410可以分成以下3个步骤: 1)编写mac文件,初始化S3C6410的看门狗、时钟、DDRAM控制器等,为下载代码做准备。 2)编写icf文件对S3C6410的内存空间进行分配,配置堆栈段、数据段、程序段的起始地址和大小。 3)编写S3C6410的启动代码,跳至main函数运行。 下面是飞凌6410核心板的IAR调试过程: 1)编写mac文件。mac文件无非就是初始化cpu,这个功能Wince的FIRSTBOOT就可以实现,直接在nandflash里烧入FIRSTBOOT(飞凌里叫什么steploader),然后改为nandflash启动,搞定~(飞凌给的资料里,用RVDS2.2调试S3C
[单片机]
TI推出全球首款面向运动手表的可定制开发环境
  日前,德州仪器 (TI) 宣布推出全球首款面向运动手表的可定制开发环境 eZ430-Chronos,迎来了产品开发的新纪元。该套件将深受市场青睐的 eZ430 系列开发工具进一步推向深入,使开发人员能够便捷地充分利用 TI CC430 微处理器 (MCU) 领先的集成性、超低功耗以及无线功能。Chronos 可为客户提供所需的所有软硬件,无需编程专业技能,即可启动无线网络应用的设计。该产品不但具备适用于测量与运动控制的传感器,而且还可作为附近无线传感器的中央集线器使用,用户可通过计步器、心率显示器等设备远程访问实时数据。此外,Chronos 还可为无线设置与 PC 连接提供 USB-RF 接入点,以及多个可直接投入生产的开源项
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved