【STM32】入门 · 流水灯

GPIO入门之流水灯

 

前提

keil uVision4

奋斗STM32开发板V5   STM32F103VET

JLink

 

具体

 

>新建工程

新建文件夹并命名,在此文件夹下建立user,fwlib,cmsis,output,listing等子文件夹。

user用于存放工程文件和用户层代码,包括主函数main.c。

fwlib用于存放STM32库里的inc和src文件夹,它们包含了芯片上所有的驱动。

smsis用于存放库自带的启动文件和一些位于cmsis层的文件。

output用于保存编译后的输出文件。

listing用于保存编译后生成的链接文件。

 

接下来打开Keil,新建工程和组,将对应的文件添加到对应的文件夹中。

点击工具栏中的按钮,选择output选项卡,点击Select for Objects设置编译后的文件保存位置,即前面所建的output文件夹,其他设置修改如图。同理,点击Listing选项卡选择listing文件夹来保存生成的链接文件。

注意:编译器在编译器是搜索库的默认路径是Keil\ARM\INC\ST\STM32F10x,版本旧,在编译新版本库是存在不兼容,因此,我们需要屏蔽掉编译器默认库的搜索路径,操作如下。

点击工具栏中的按钮,选择C/C++选项卡,在Define文本框中添加两个宏定义:

USE_STDPERIPH_DRIVER,STM32F10X_HD,并在Include Path栏添加库文件的搜索路径。

 

>配置JLink硬件调试

点击按钮,将Debug和Utilities选项卡下的设置修改如下。

至此,工程模板建立完成。

 

>main.c

#include "stm32f10x.h"


#define DELAY_TIME   0x3FFFFF

void Delay(__IO uint32_t nCount)
{
   for(; nCount != 0; nCount--) ;
}

int main(void)
{

	GPIO_InitTypeDef   GPIO_InitStructure;
		
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_6|GPIO_Pin_5;				     
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOD, &GPIO_InitStructure);
        GPIO_Init(GPIOB, &GPIO_InitStructure);	

  while(1)
  {
		  GPIO_SetBits(GPIOB, GPIO_Pin_5);
		  GPIO_ResetBits(GPIOD, GPIO_Pin_3);
		  GPIO_ResetBits(GPIOD, GPIO_Pin_6);
		  Delay(DELAY_TIME);

		  GPIO_SetBits(GPIOD, GPIO_Pin_6);
		  GPIO_ResetBits(GPIOD, GPIO_Pin_3);
		  GPIO_ResetBits(GPIOB, GPIO_Pin_5);
		  Delay(DELAY_TIME);	
		
		  GPIO_SetBits(GPIOD, GPIO_Pin_3);
		  GPIO_ResetBits(GPIOD, GPIO_Pin_6);
		  GPIO_ResetBits(GPIOB, GPIO_Pin_5);
		  Delay(DELAY_TIME);	

  }
}

 

 

 

遇到的问题及解决方法

jtag模式下,出现此类问题的原因通常是MDK中的Flash的变成算法没有配置或者没有配置正确,在主菜单中打开Flash->Configure Flash Tools,选择Utilities选项卡,点击Settings按钮进入如下窗口,点击Add按钮选择和开发板对应的编程算法。

 

 

 

 

  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值