月之骑士-194136 发表于 2011-2-28 20:47:20

神舟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格式的输出


<font size="3"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第四步是设置链接文件:也就是告诉编译器,器件的RAM和ROM的起始范围与大小。

<span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最后是添加文件,附近有我设置的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。
 
<span style="font-family: 宋体; font-size: 12pt; mso-font-kerning: 1.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">下面我先做下第一个实验—流水灯实验。我喜欢把每个功能做成两个文件,一个是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();

qqinong-260921 发表于 2011-3-1 23:06:07

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

刚学习IAR,谢谢

baita10 发表于 2011-3-29 10:47:29

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

ddddddddddddd

mahui84 发表于 2011-4-16 00:25:00

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

:)
Nice!Thankyou,楼主!!!

passage110 发表于 2011-4-17 11:54:30

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

谢谢 试试看看就知道了

tbba321 发表于 2011-7-13 14:34:39

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

赶紧学习:D

tbba321 发表于 2011-7-13 14:35:45

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

赶紧学习:D

tbba321 发表于 2011-7-13 14:49:20

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

用什么来打开那个zip里面的内容的呢?是什么格式的

moyuxuan198 发表于 2011-7-20 16:46:53

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

好东西啊 正要学习 简简单单起步好

liuchaonuaa 发表于 2011-7-21 14:39:42

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

:)学习
页: [1] 2 3
查看完整版本: 神舟IV学习笔记(一)设置IAR开发环境与流水灯