stm32主要学习外设,通过配置外设来实现我们的功能,stm32f103c8t6主要外设如下:
1主要外设:
2引脚定义如下:
引脚的主功能是上电后就执行的功能,默认复用功能是连接外设时可以选择该默认功能,重定义功能是当该IO同时需要该功能时,可以将该功能重定义到另外一个IO口(AFIO),必须是重定义的IO口支持该功能。
FT表示该引脚支持容忍5v电压,默认3.3V电压。
引脚介绍:
1VBAT:备用电池供电引脚,3v电池,可以给内部rtc时钟和备份寄存器提供电源
2PC13-TAMPER-RTC:io口,侵入检测,rtc。io输入输出,读取高低电平,侵入检测用作安全保障,清除数据。rtc可以用来输出rtc校准时钟,rtc闹钟脉冲或者秒脉冲
3,4io口,32.768khzrtc晶振
5,6系统主晶振,8mhz
7NRST:系统复位引脚,N低电平复位
8,9VSSA,VDDA内部模拟部分电源,例如ADC,RC震荡等,VSS负极GND,VDD正极3.3V
10-19IO口其中10号口pa0兼具wkup功能,用于唤醒待机状态stm32(优先使用io口)
20io口或者boot引脚,boot引脚用来配置启动模式的(不优先使用io口,可能先需要进行配置)
21,22IO
23,24VSS-1,VDD-1系统主电源口,vss负极,vdd正极,下面vss-2-3等也是系统主电源,采用了分区供电的方式,vss接gnd,vdd接3.3v即可
25-33io口
34,37-40:IO口或者调试端口,默认主功能是调试端口,调试就是用来调试程序或者下载程序的,支持SWD(两根线SWDIO,SWCLK)和JTAG(五根线:JTMS,JTCK,JTDI,JTDO,NJTRST)两种调试方式,使用stlink下载调试程序,stlink采用swd方式,只占用PA13,PA14端口,剩下的可以切换普通io口使用,需要在程序中进行配置
41-43,45,46:IO
44:BOOt0:启动配置
在启动模式中,有三种不同启动模式:
指定程序开始运行的位置。一般情况下程序都是在flash程序存储器开始执行。(主闪存)
第二种模式为系统存储器启动区域,串口来进行下载程序,一般利用上诉调试io进行下载程序
注意:一般一个时钟后boot将失效,将为普通的io口功能。
3新建工程:
直接写代码就是直接操作寄存器,通过库函数一般为stm32的常用方法,通过控制寄存器的方式*需要不断地查手册来看每一个寄存器的每一位是干啥的。
库函数:加载库函数源文件、头文件:在keil软件target添加组。添加库函数进入;同时需要添加*配置函数到用户中。加上条件编译建立基于库函数的工程,函数间接配置寄存器。)
1建立启动文件Start:
包含启动文件startup_stm32f10x_xx.s(底层汇编),系统初始化文件system_stm32f10x.c,内核库core_cm3.cstm32。寄存器定义文件stm32f10x.h
启动文件依据类型缩写选择合适的启动文件。
2建立库函数文件Library:
库函数src源文件,misc内核源文件,其他为内核外外设库函数,inc头文件
配置文件stm32f10x_it.h中断函数,stm32f10x_conf.h配置文件(conf配置文件,it中断函数文件)
3建立用户文件User:
建立main函数
4其他设置:
1添加头文件路径,让软件找到.h文件,宏定义加上片上外设定义 USE_STDPERIPH_DERIVE (PERICH外设)
2配置debug调试器选择stlink,设置flash选择reset and run
基于此,基础的配置就弄好了!有问题和错误之处欢迎指出!不甚感激!