STM32实战(一)

开个新坑,主要是跑跑STM32的一些例程。
参考视频:https://www.bilibili.com/video/BV1th411z7sn?spm_id_from=333.788.videopod.episodes&vd_source=c24105e108b49712d5e90c5df302d797&p=4

  1. 环境搭建
    keil5->
    新建工程->
    选择STM32F103C6->
    固件库下STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm(启动文件)下所有文件放在工程目录下Start文件夹下->
    STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下几个.c.h文件(描述外设寄存器的文件和用于配置系统时钟的文件)放在Start文件夹下->
    STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下两个文件(描述内核寄存器的文件)也放在Start文件夹下->
    选择_md.s的启动文件以及刚刚选上的那些.c.h文件->
    添加Start路径->
    新建User文件夹,添加组User,新建main.c。

  2. 下载到开发板
    我这里只有一条usb转串口的线,所以先暂时用串口下载程序,开发板上的跳线帽BOOT0接1,BOOT1接0。
    RXD->A9 TXD->A10

再编译发现报错Start/core_cm3.c(479): error: non-ASM statement in naked function is not supported
编译器版本问题
魔术棒->target->编译器版本选择v5而不是v6。
又出现报错*** Target 'Target 1' uses ARM-Compiler 'Default Compiler Version 5' which is not available.
需要重新下载v5版本的编译器,安装到keil安装目录下的ARM文件夹。
然后添加组件


选上刚刚的编译器安装目录就行了。

编译时需要生成hex文件


成功。

  1. 添加库函数
    创建Library。
    固件库\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src和\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc下所有文件都拷贝到Library下。
    固件库\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下conf和it文件复制到工程User目录下。
#include "stm32f10x.h"                  // Device header

int main(void)
{
//	RCC->APB2ENR = 0x00000010;
//	GPIOC->CRH = 0X00300000;
//	GPIOC->ODR = 0x00000000;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	GPIO_SetBits(GPIOC, GPIO_Pin_13);
	//GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	while(1)
	{
		
	}
}

  1. 工程架构
posted @ 2025-03-31 23:44  横渡大海的神仙鱼  阅读(81)  评论(0)    收藏  举报