zoukankan      html  css  js  c++  java
  • STM32第一个demo与软件设置

    本文前半部分为转载,后半部分为原创。

    所使用软件版本为:Keil MDK4.12

    单片机型号为:STM32F103C8T6

    STM32第一个demo

    1.建立文件夹

    GPIO_TEST存放整个工程项目,在该项目文件夹下建立子文件夹存放不同类别的文件。

    Obj:存放工程文件

    Out:存放编译输出文件

    Sorce:存放源代码文件


    2.新建工程

    打开KEIL3,这个时候显示的应该是上次使用过的工程。


    在其中新建工程,把该工程存放在刚刚建立的Obj子文件夹下。



    点击保存后弹出选择器件窗口,选择选择使用器件型号。


    点击确定后弹出:


    这个时候选择“是”,工程建立成功。


    3.工程管理

    这项对于项目的运行没有必要性,只是为了方便项目的管理。

    在工程上右键,选择


    弹出如下工程文件管理窗口,在此处可以添加Lib和Source。


    经过操作,建立如下文件夹有备使用,这个可以根据个人编程习惯处理。


    4.编写代码

    新建源文件,保存在Sorce子文件夹下,注意文件名为gpio_test.c,一定要有C后缀。



    把该文件添加到工程。


    编写代码。

    #include "stm32f10x_lib.h"
    
    GPIO_InitTypeDef GPIO_InitStructure;
    
    //LED端口初始化
    void LED_Init(void)
    {
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    	
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;			 
      	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
      	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      	GPIO_Init(GPIOC, &GPIO_InitStructure);
    }
    
    void Delay(vu32 nCount)
    {
      for(; nCount != 0; nCount--);
    }
    
    main()			                              //内部8M RC时钟 ,无倍频
    {
    	
    	LED_Init();
    	
    	while(1)								  
    	{
    		Delay(0x8ffff);
    		Delay(0x8ffff);
    		GPIO_ResetBits(GPIOC, GPIO_Pin_13);
    		Delay(0x8ffff);
    		Delay(0x8ffff);
    		GPIO_SetBits(GPIOC, GPIO_Pin_13);
    	}
    }
    
    注意:在这里用到了RCCGPIO的库函数,所以必须把这两个函数加入工程。



    关于固件库函数在文件夹:C:KeilARMRV31LIBSTSTM32F10x

    为了不在操作过程中避免改变KEIL文件夹下的库函数,可以固件函数库放到其他文件夹下,如:E:jyworkSTMWxlStm32LABlibrary

    其中stm32f10x_lib.c文件是整个库的一些定义,是必须要的。

    加入后的工程为:


    这里,如果有的人觉得不知道使用了哪些库函数,不晓得添加哪些库文件进入工程,有个最简单的办法就是添加所有的固件库函数到工程,为了方便可以直接添加:C:KeilARMRV31LIBST路径下的STM32F10xR.LIB文件进入工程。


    之后进行编译和烧写。不过在编译和烧写前需要先进行软件设置。


    软件设置

    这些设置也可以在工程建立后马上进行。

    打开选项窗口:


    每一页的设置如下:












    设置完这些后就可以编译并下载或调试程序了。




    程序在这里已经能正常运行了,会看到单片机上PC13对应的LED灯闪烁。









































  • 相关阅读:
    P站画师 GTZ taejune 精选4k插画壁纸
    点、向量与坐标系
    一些几何
    画直线算法 Line drawing algorithm
    DX11 学习大纲
    插值 Interpolation
    The History of Computer Graphics
    vue中的请求拦截响应
    Event loop
    小程序使用wx.navigateTo()跳转失败
  • 原文地址:https://www.cnblogs.com/mingmingruyue99/p/7202008.html
Copyright © 2011-2022 走看看