找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7521|回復(fù): 0
收起左側(cè)

利用Eclipse IDE for C/C++ Developers和GNU Tools ARM Embedded編譯器,建立的一...

[復(fù)制鏈接]
ID:77367 發(fā)表于 2015-4-19 00:56 | 顯示全部樓層 |閱讀模式
工作環(huán)境說明:

1. 硬件平臺: DX開發(fā)板主板 + DX103核心板

2. 軟件平臺: Eclipse IDE for C/C++ Developers + GNU Tools ARM Embedded
  (1) IDE:    Eclipse IDE for C/C++ Developers
  (2) 編譯器: GNU Tools ARM Embedded編譯器,支持STM32F103的標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)庫3.5版本

//
// This file is part of the GNU ARM Eclipse distribution.
// Copyright (c) 2014 Liviu Ionescu.
//

// ----------------------------------------------------------------------------

#include <stdio.h>
#include "diag/Trace.h"
#include "stm32f10x_conf.h"
// ----------------------------------------------------------------------------
//
// STM32F1 empty sample (trace via ITM).
//
// Trace support is enabled by adding the TRACE macro definition.
// By default the trace messages are forwarded to the ITM output,
// but can be rerouted to any device o.r completely suppressed, by
// changing the definitions required in system/src/diag/trace_impl.c
// (currently OS_USE_TRACE_ITM, OS_USE_TRACE_SEMIHOSTING_DEBUG/_STDOUT).
//

// ----- main() ---------------------------------------------------------------

// Sample pragmas to cope with warnings. Please note the related line at
// the end of this function, used to pop the compiler diagnostics status.
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wmissing-declarations"
#pragma GCC diagnostic ignored "-Wreturn-type"

int main(int argc, char* argv[])
{
  // At this stage the system clock should have already been configured
  // at high speed.

  // Enable GPIO Peripheral clock
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  GPIO_InitTypeDef GPIO_InitStructure;
  // Configure pin in output push/pull mode
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  // Configure pin in output push/pull mode
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_14;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
  // Configure pin in output push/pull mode
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  // Infinite loop
  while (1)
    {
      // Add your code here.
       GPIO_Write(GPIOA, GPIOA->ODR^(0x00001 << 0)); // 單步運(yùn)行,點(diǎn)亮或關(guān)閉LED1
       GPIO_Write(GPIOB, GPIOB->ODR^(0x00001 << 0));
       GPIO_Write(GPIOB, GPIOB->ODR^(0x00001 << 14));
       GPIO_Write(GPIOD, GPIOD->ODR^(0x00001 << 13));
       GPIO_Write(GPIOD, GPIOD->ODR^(0x00001 << 12));
    }
}

#pragma GCC diagnostic pop

// ----------------------------------------------------------------------------

2015_3_18_8_32_31.jpg

【圖片】默認(rèn)閃爍一個(gè)LED.jpg


2015_3_18_8_32_45.jpg

【圖片】修改為空項(xiàng)目.jpg

增加的代碼,默認(rèn)使用3.5的固件庫和相應(yīng)的CMIS層,如果需要使用HAL的固件庫,CMIS層需要改動(dòng),會(huì)比較麻煩。
暫時(shí)用3.5的固件庫了,注意新建一個(gè)空項(xiàng)目,然后添加代碼。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表