使用STM32库建立keil_4工程详细步骤

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6、打开GPIO文件夹
7、打开IOToggle,复制除了readerme.txt之外的文件到工程下的User文件。
复制好之后:
8、到此,准备百度文库作完毕。
9、打开KEIL,新建工程
10、保存在Project文件夹下面,取名为自己的名字,我取名为GPIO。
11、选定自己使用的芯片,点击ok。
12、此时会跳出这个对框框,选择否:
18、在CMSIS下增加文件:
CMSIS文件下的CM3的CoreSupport的文件
19、在StartUp下面增加位于 下的文件
20、选择自己芯片对应的文件。我用的是第二种startup_stm32f10x_hd.s
21、增加完文件后工程如下
现在左键点击选中GPIO工程名,在点击右键选择Options for Target‘GPIO’来配置工程
* @retval None
*/
int main(void)
{
/*!< At this stage the microcontroller clock setting is already configured,
this is done through SystemInit() function which is called from startup
27、由于使用的是都是拷贝的东西,在main.c下面我们有些东西没有用到。需要做一定的修该,改成你自己需要的例程就可以了。
我的文件修改如下
/**
******************************************************************************
Define中写入USE_STDPERIPH_DRIVER, STM32F10X_HD
其中第一个“USE_STDPERIPH_DRIVER”定义了使用外设库,定义此项会包含*_conf.h文件,从而使用外设库;而第二个“STM32F10X_HD”从字面理解应该是定义了大等容量的STM32MCU,STM32F10X_MD则为中等容量等。
13、工程建好后是这样的。
14、在工程上右键选择Mange Componts如下:
15、建立如下组
16、在User下面添加刚才方法哦User下的C文件:
点击Add
17、增加StdPeriph_Driver的文件,在自己工程StdPeriph_Driver下面的下面的src文件如下:(说明:只需要增加自己需要的,我这里全部添加了)
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANYCLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
RCC_APB2Periph_GPIOE, DISABLE);
while (1)
RCC_APB2Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>
*/
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
/** @addtogroup STM32F10x_StdPeriph_Examples
* @{
*/
/** @addtogroup GPIO_IOToggle
* @{
*/
/* Private typedef -----------------------------------------------------------*/
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
25、现在设置Include paths:
设置如下的头文件路径:
点击ok
.分别为:
.\User
..\CMSIS\CM3\CoreSupport
..\CMSIS\CM3\DeviceSupport\ST\STM32F10x
..\STM32F10x_StdPeriph_Driver\inc
26、设置完毕,确定ok,ok,结束。
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_Init(GPIOE, &GPIO_InitStructure);
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
file (startup_stm32f10x_xx.s) before to branch to application main.
To reconfigure the default setting of SystemInit() function, refer to
system_stm32f10x.c file
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t* file, uint32_t line)
STM32
新建文件夹取名为自己想要的名称(如GPIO)
1、打开文件,建立如下的文件结构:
2、打开Project,建立如下文件:
3、打开下载来的外设驱动库如下:
4、把Libraries的下的两个文件(CMSIS和STM32F10x_StdPeriph_Driver)拷贝到GPIO文件下:
5、打开下载的驱动库下的Project文件,打开STM32F10x_StdPeriph_Examples,找到我们需要的例程,如GPIO
{
for(; nCount != 0; nCount--);
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
/* Infinite loop */
while (1)
{
}
}
#endif
/**
* @}
*/
/**
* @}
*/
/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
此时编译,成功。
22、在output页面下点击
Select Folder Objects…,选择我们在Project目录下的Obj文件
23、勾选长生hex文件。
24、在Listing页面下点击
Select Folder Objects for listings…,选择我们在project目录下的List文件
在C/C++页面下配置,这是预编译的定义;
/* Private variables ---------------------------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;
/* Private function prototypes -----------------------------------------------*/
* @file GPIO/IOToggle/main.c
* @author MCD Application Team
* @version V3.4.0
* @date 10/15/2010
* @brief Main program body.
******************************************************************************
void Delay(__IO uint32_t nCount);
/* Private functions ---------------------------------------------------------*/
/**
* @brief Main program.
* @param None
immunity against EMI/EMC *************************************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
* @copy
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
*/
/* Configure all unused GPIO port pins in Analog Input mode (floating input
trigger OFF), this will reduce the power consumption and increase the device
{
/* Insert delay */
Delay(0xAFFFF);
}
}
/**
* @brief Inserts a delay time.
* @param nCount: specifies the delay time length.
* @retval None
*/
void Delay(__IO uint32_t nCount)
相关文档
最新文档