当前位置:首页 > 单片机 > 单片机
[导读]小弟刚刚拿到神舟的板子,那是相对的激动。好大的液晶屏幕,好多资料哦,好强大啊~~。首先需要准备的是《STM32F10xxx参考数据》,我看的是2010年1月10日的版本,不知道今年有没有更新中文用户手册。STM32F107xx微控

小弟刚刚拿到神舟的板子,那是相对的激动。好大的液晶屏幕,好多资料哦,好强大啊~~。

首先需要准备的是《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格式的输出



第四步是设置链接文件:也就是告诉编译器,器件的RAM和ROM的起始范围与大小。


下面我先做下第一个实验—流水灯实验。我喜欢把每个功能做成两个文件,一个是C文件(源代码),一个是H文件(头文件)。下次需要这个功能的时候,只需要把这两个文件拷贝到工程当中,简单方便。下面是我写的代码:

LED.C

#include "led.h"

void LED_Configuration(void)

{

GPIO_InitTypeDefGPIO_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 LED1GPIO_Pin_2

#define LED2GPIO_Pin_3

#define LED3GPIO_Pin_4

#define LED4GPIO_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();

}

}


最后是添加文件,附近有我设置的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。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

电力鸿蒙操作系统凭借其分布式架构、统一通信标准和跨设备协同能力,成为推动电力行业数字化转型的核心技术。然而,对于开发者而言,搭建一套稳定、高效的开发环境是进入电力鸿蒙开发领域的关键前提。本文将从环境准备、核心工具安装、配...

关键字: 电力鸿蒙 开发环境

电力鸿蒙(OpenHarmony for Power)作为面向能源互联网的分布式操作系统,其轻量化内核与跨设备协同能力,正在重塑电力设备的智能化开发范式。本文从硬件选型、开发工具链配置到环境验证,提供一套完整的开发环境搭...

关键字: 电力鸿蒙 开发环境

电力行业作为国民经济命脉,其智能化转型对操作系统提出了高实时性、高安全性和跨设备协同的严苛要求。电力鸿蒙(OpenHarmony for Power)作为面向能源互联网的定制化操作系统,通过其分层架构与分布式能力,正在重...

关键字: 电力鸿蒙 开发环境

电力鸿蒙操作系统凭借其分布式架构、跨设备协同能力及统一的通信标准,成为构建智能电网和能源互联网的核心技术底座。对于开发者而言,搭建一套高效稳定的开发环境是进入电力鸿蒙开发领域的第一步。本文将从系统配置、工具链安装、环境配...

关键字: 电力鸿蒙 开发环境

在现代工业自动化控制系统中,可编程逻辑控制器(PLC)扮演着至关重要的角色。三菱PLC以其强大的功能和可靠的稳定性,在各类控制任务中得到了广泛应用。流水灯控制作为一种典型的PLC应用案例,不仅有助于理解PLC的基本工作原...

关键字: 三菱PLC 流水灯

在嵌入式系统设计中,搭建开发环境是实现项目成功的重要步骤之一。本文将介绍如何在嵌入式系统中构建一个完整的开发环境,包括硬件和软件方面的考虑。 在嵌入式系统设计中,搭建一个良好的开发环境是非常重要的,它能够帮助开发人员高效...

关键字: 嵌入式 开发环境 测试

嵌入式开发环境是指嵌入式产品开发所需要的硬件和软件环境。嵌入式开发环境对系统有很高的要求,因为嵌入式产品需要在有限的资源下运行,并且需要满足实时性、安全性和可靠性等要求。本文将对嵌入式开发环境和对系统的要求进行详细的探讨...

关键字: 嵌入式 产品 开发环境

如何留住你从前的开发环境?应该是很多人会面对的问题,特别是遇到老芯片,或者自己熟悉的老开发环境,只能运行在XP、2000、WIN7,而你的电脑只能跑更新的系统,或者你不想回到二十年前的系统下工作。该怎么办呢?

关键字: 虚拟机 开发环境

学习目标 STM32F103C8T6芯片简介 核心板原理图 搭建流水灯电路 修改工程模板 代码实现 成果展示 资料获取 推荐阅读 后台网友建议制作一个流水灯,正好发现自己有之前购买的STM32F103C8T6核心板,今天...

关键字: 流水灯 STM32F103 最小系统板

为增进大家对pic单片机的了解,本文将对pic单片机开发环境以及pic单片机的引脚3状态予以讲解。如果你对pic单片机具有兴趣,不妨继续往下阅读哦。

关键字: pic单片机 开发环境 指数
关闭