STM32F103C8T6第一次点灯

发布时间 2023-08-15 14:26:31作者: 锦城H

@

目录

代码

#include "stm32f10x.h"                  // Device header

int main(void){
	
//	寄存器操作,stm32有很多寄存器,操作不方便,推荐使用标准库或HAL库
//	RCC->APB2ENR = 0x00000010;
//	GPIOC->CRH = 0x00300000;
//	GPIOC->ODR = 0x00002000;
	
	//注意:步骤二中,需引用一个结构体变量,C语言中变量创建,要在执行语句前
	GPIO_InitTypeDef GPIO_InitStructure;
	
	/* 第一步开启使能时钟 */
	// 参数1:选择外设	参数2:选择新的状态	选择GPIOC是因为现在要控制的引脚是PC13,而PC13对应的GPIOC
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	
	/* 第二步:配置端口模式 */
	//参数1 GPIOx	参数2 GPIO_InitTypeDef结构体
	
	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){
		
	}
	
	/*
	User:
	conf.h 配置库函数头文件的包含关系,以及用来参数检查的函数定义,这是所有库函数都需要的。
	it 用来存放中断函数
	
	*/
	
	/* 
	启动文件Start
	STM32F10x.s
	里面定义了STM32的堆栈大小,以及各种中断的名字及入口函数名称,还有启动相关的汇编代码。
	STM32F10x.s是MDK提供的启动代码,从里面的内容来看,它只定义了3个串口,4个定时器。
	实际上STM32的系列产品有5个串口的型号,最多有8个定时器。
	要根据MCU类型以及其Flash(ROM)存储器大小来选择对应的启动文件。
	*/
	
	/* 
	固件库文件,可以在STM的官网下载
	封装了各种类型及模块的配置文件以及各功能模块的配置以及使用。
	类似于API,更少的接触底层,就可以写出程序。
	虽然固件库封装了底层接口,但是作为硬件开发的软件工程师,还是要多看看MCU的datasheet,
	只有熟悉了底层,才能写出更高效的程序。
	文件目录:
	_thmresc:ST的logo,无用,不用理会。
	Libraries:包含STM32的系统文件和大量头文件,也就是库文件
	Project:包含大量外设的例程和各个软件版本的评估版工程模板。
		KEIL对应的就是MDK-ARM文件下的工程模板。
		开发者也可以利用这个工程模板来修改,得到自己的工程模块。
	Utilities:评估版的相关文件
	对于每一个固件库的函数可以在网络上下载V3.5固件库的说明书,详细查看
	*/

	
}