stm32f103c8t6工程模板的建立

由于项目需要,因此入手了c8t6,虽然网上关于f1的教程挺多的,也挺全面,但自己刚开始接触c8t6,觉得商家配套的开发程序看着不习惯,就想弄成原子的风格,网上直接搜索一下,好像都没有特别好的教程,对于我这些小白来说还是不太友好的(弄这个工程模板花了一天时间,流下了没有技术的泪水。。。)。主要借鉴的是原子的开发文档。

  • c8t6工程模板的建立
  • SWD调试的配置

首先贴上移植原子的具体例程:在这里插入图片描述
链接如下:正点原子openedv资料下载地址;我下载的是mini板的rct6资料,因为移植前先逛了论坛,原子哥在某篇帖子说了,直接移植这个开发板的例程即可。

  1. 新建相关文件
    新建总文件夹,用来存放本次工程的所有程序,然后再建CORE、HARDWARE、OBJ、FWLIB、SYSTEM、USER这六个文件夹。其中,HARDWARE文件夹是用来存放外设硬件代码,OBJ用来存放生成调试代码,FWLIB是各种.c和.h文件,具体如下:
    在这里插入图片描述
    这几个文件夹包含的文件分别如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 打开MDK,建立新工程,保存到USER下:
    在这里插入图片描述
    在这里插入图片描述
    芯片型号选择STM32F103C8,然后会弹出run-time environment窗口,选择取消,
    在这里插入图片描述
    在这里插入图片描述
    USER文件夹会出现这两个我们需要的文件:
    在这里插入图片描述

  3. 在MDK添加项目所需要的分组以及文件:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 配置options for target:
    在这里插入图片描述
    在这里插入图片描述
    其中,select folder for objects是选择生成的hex存放的目录,这里选择存放在OBJ文件夹中,create HEX file是生成hex文件,用于下载到开发板的:
    在这里插入图片描述
    在这里插入图片描述
    到这里就基本上完成了新建工程模板。在上网找相关教程的时候发现很多帖子说延时慢了10倍,然后要在初始化的时候添加一个system_init()函数之类的,后来我在原子的开发文档找到了这句话:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    所以不用再加那句话了。编译程序,应该是通过的(程序源码在后面链接,如果按照上面的步骤来没通过的话就对比一下,或许有什么地方漏掉了也说不好,后面链接的工程文件亲测可用)。

  5. 添加LED驱动代码:
    我用的核心板关于LED的管脚分配如下:
    在这里插入图片描述
    所以需要配置的是PC13号管脚。

#include "led.h"  

//初始化PC13为输出口.并使能这个口的时钟		    
//LED IO初始化
void LED_Init(void)
{ 
    GPIO_InitTypeDef GPIO_InitStructure;
 	
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能PC端口时钟
	
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;				 //LED2-->PC13 端口配置
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
    GPIO_Init(GPIOC, &GPIO_InitStructure);					 //根据设定参数初始化PC13
    GPIO_SetBits(GPIOC,GPIO_Pin_13);						 ////PC13输出低,关闭所有LED						
}
#ifndef __LED_H
#define __LED_H	 
#include "sys.h"
#define LED0 PCout(13)	// PC13	

void LED_Init(void);//初始化
 				    
#endif

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"

int main(void)
{			  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(9600);	 //串口初始化为9600
    delay_init();	    	 //延时函数初始化
    LED_Init();
     
	while(1)
    {
       LED0=0;
       delay_ms(1000);
       LED0=1;
       delay_ms(1000);
	}
}

SWD配置

  1. 由于我使用的是ST-LINK,所以这里选择ST-LINK debuger,然后选择SW port:
    在这里插入图片描述
    在这里插入图片描述
  2. Flash Download选择如下:
    在这里插入图片描述
    在这里插入图片描述
    最后选择Download,实现SW下载。整个完整的stm32f103c8t6工程模板点击这里:百度网盘链接:w7xt
发布了17 篇原创文章 · 获赞 47 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42827999/article/details/101699674