小白跟做江科大32单片机之新建工程

项目基础配置

1.新建item文件夹,包含全部stm32项目文件

2.在item文件夹中新建第一个项目,2-1 stm32工程模板,起名字是project

3.工程芯片选择STM32F103C8,因为课程中的芯片是STM32F10318C8T6

4.在固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下找到这几个文件并复制到新建文件start目录下。

5.在固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下找到这三个文件复制到新建文件start目录下

6.start文件中现在包含以下文件

7.由于内核的寄存器描述和外围设备的描述文件不是在一起的,所以需要添加内核的寄存器描述文件

将固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的两个文件都复制到start目录下

8.最终start包含以下文件

9.工程中要添加这些文件

10.添加文件路径,在这里把start的路径添加进去,添加进去之后那里会出现start

11.Target右键新建group->User

12.User->new 文件,要注意位置

13.编写利用寄存器开发STM32C的代码

14.修改编码格式

15.四根母对母杜邦线链接stlink

16.PC13灯闪烁,另一个灯常亮

17.调整Debug

18.上一步选完STLINK-debug之后,点击旁边的setting

19.编译之后,点击这个,没问题就会直接下载到STM32中


点灯

一、寄存器驱动

1.配置时钟,STM32默认单元没有时钟,必须先有时钟才能运行,先打开GPIOC的时钟

2.配置PC13口的模式,主要就是CNF13和MODE13

3.PC13口输出数据寄存器,写1就是高电平,写0就是低电平

4.这系统是低电平点亮,所以全0就是全亮

GPIOC->ODR =0x00000000;全亮

GPIOC->ODR =0x00002000;全灭

二、库函数驱动

(一)、库函数工程基础配置

1.在工程目录下新建文件用于存放库函数

2.将固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src下的文件全部复制到刚刚新建的library文件夹下,其中misc.c是内核库函数。

3.将固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc下的文件全部复制到刚刚新建的library文件夹下,这都是头文件。

4.Target右键新建group->library

5.添加全部文件到library下

6.将固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template文件夹下的这三个文件复制到User下

7.在keil5软件中将这三个文件添加到User下

8.添加一个宏定义

找到下面这个语句,复制USE_STDPERIPH DRIVER

9.复制到这里

10.添加User和Library目录的路径,这步参考项目基础配置第10步。

(二)、代码编写

1.编译测试

#include "stm32f10x.h"
int main (void)
{

        while (1)

          {

           }

}

2.库函数点灯

#include "stm32f10x.h"                  // Device header

int main(void)
{
    /*开启时钟*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);    //开启GPIOC的时钟
                                                            //使用各个外设前必须开启时钟,否则对外设的操作无效
    
    /*GPIO初始化*/
    GPIO_InitTypeDef GPIO_InitStructure;                    //定义结构体变量
    
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //GPIO模式,赋值为推挽输出模式
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;                //GPIO引脚,赋值为第13号引脚
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //GPIO速度,赋值为50MHz
    
    GPIO_Init(GPIOC, &GPIO_InitStructure);                    //将赋值后的构体变量传递给GPIO_Init函数
                                                            //函数内部会自动根据结构体的参数配置相应寄存器
                                                            //实现GPIOC的初始化
    
    /*设置GPIO引脚的高低电平*/
    /*若不设置GPIO引脚的电平,则在GPIO初始化为推挽输出后,指定引脚默认输出低电平*/
//    GPIO_SetBits(GPIOC, GPIO_Pin_13);                        //将PC13引脚设置为高电平
    GPIO_ResetBits(GPIOC, GPIO_Pin_13);                        //将PC13引脚设置为低电平
    
    while (1)
    {
        
    }
}

可能会出现keil5报错的情况,具体看这个解决方案

*** Using Compiler ‘V5.06 update 1 (build 61)‘, folder: ‘C:\Keil_v5\ARM\ARMCC\Bin‘报错_v5.06 update 1(build 61)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_71500261/article/details/132562112


注意

    前面的项目基础配置中的第四步为什么选择那些文件的答案就是这个

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值