上海
如何使用
STM32的软件库
在IAR的EWARM下
进行应用开发
2007年12月
2007年12月
www.stmicroelectronics.com.cn/mcu
2
STM32 32位微控制器
步骤一:创建项目目录,拷贝公共文件
①
将STM32软件库中FWlib
目录中的library目录拷贝
到所建项目的目录中。
②
将软件库的Examples目录里的
任一例程的stm32f10x_conf.h、
stm32f10x_it.c、stm32f10x_it.h
和main.c拷贝到项目的目录中。
③
拷贝软件库中\project\EWARM\目录中
的stm32f10x_vector.c、
cortexm3_macro.s、lnkarm_ram.xcl和
lnkarm_flash.xcl到项目的目录中。
2007年12月
www.stmicroelectronics.com.cn/mcu
3
STM32 32位微控制器
步骤一:创建项目目录,拷贝公共文件(续)
①
将STM32软件库中FWlib
目录中的library目录拷贝
到所建项目的目录中。
②
将软件库的Examples目录里的
任一例程的stm32f10x_conf.h、
stm32f10x_it.c、stm32f10x_it.h
和main.c拷贝到项目的目录中。
③
拷贝软件库中\project\EWARM\目录中
的stm32f10x_vector.c、
cortexm3_macro.s、lnkarm_ram.xcl和
lnkarm_flash.xcl到项目的目录中。
2007年12月
www.stmicroelectronics.com.cn/mcu
4
STM32 32位微控制器
步骤二:修改应用文件(一)
stm32f10x_conf.h
#define _ADC
#define _ADC1
//#define _ADC2
…
#define _FLASH
#define _GPIO // include gpio.h file
//#define _GPIOA // not use GPIOA
//#define _GPIOB // not use GPIOB
#define _GPIOC // use GPIOC
//#define _GPIOD // not use GPIOD
//#define _GPIOE // not use GPIOE
#define _AFIO // use alternat function
…
#define _NVIC
#define _RCC
…
// Value of the External oscillator in Hz
#define HSE_Value ((u32)8000000)
注:本文中使用
STM32
软件库中的例子。
修改设置文件
stm32f10x_conf.h
根据自己电路板上的外部晶
振频率来修改
HSE_Value。
根据自己使用需求,打开相应
外设的define:
#define _PPP (必须的)
#define _PPPx
(可选
的,根据外设决定)
2007年12月
www.stmicroelectronics.com.cn/mcu
5
STM32 32位微控制器
步骤二:修改应用文件(二)
在main.c中编写自己
的主程序
添加自己编写的代码。
main.c
#include “STM32F10x_lib.h“
int main()
// main program(添加自己的代码)
{
RCC_Configuration(); // Set System clock
NVIC_Configuration(); // NVIC configuration
GPIO_Configuration(); // GPIO configuration
ADC12_Configuration();// ADC configuration
// Enable ADC1 reset calibaration register
ADC_ResetCalibration(ADC1);
// Check ADC1 calibration
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);// calibarate ADC1
// Check the end of ADC1 calibration
while(ADC_GetCalibrationStatus(ADC1));
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(1); // Infinite loop
}
必须添加此行!