小弟刚刚拿到神舟的板子,那是相对的激动。好大的液晶屏幕,好多资料哦,好强大啊~~。 首先需要准备的是《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(); |
å¦ä¹ å¿å¾ä¸.zip
下载524.46 KB, 下载次数: 63, 下载积分: ST金币 -1
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
回复:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
Nice!Thankyou,楼主!!!
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
回复:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯
回复:神舟IV学习笔记(一)设置IAR开发环境与流水灯
回复:神舟IV学习笔记(一)设置IAR开发环境与流水灯
RE:神舟IV学习笔记(一)设置IAR开发环境与流水灯