STM32F103芯片学习笔记
小白一枚,在学习的路上希望留下一些痕迹,以此分享自己的经验和方便自己回顾…
推荐官方正点原子的STM32学习视频,官网和B站上面都有。
新建工程–固件库函数
1.参数设置
宏定义变量,定位到C/C++界面,填写
STM32F10X_HD,USE_STDPERIPH_DRIVER(中容量)
STM32F10X_MD,USE_STDPERIPH_DRIVER(大容量)
STM32F10X_LD,USE_STDPERIPH_DRIVER(小容量)
到Define输入框里面;
2.赋值代码中出现乱码解决:
点击文件-Edit-configuration-Encondng-Chinese GB23212(Smipifed)-再复制文本;(每一个版本按键位置应该不同)(就不附图片了)
3.直接从标准例程-库函数版本目录下面复制SYSTEM文件夹;
4.工程文件中为出现加号+,怎么解决?
需要右键文件夹-点击Show Include File Dependences√选项-关工程-再打开工程重新编译;
5.GPIO讲解:
STM32中文参考手册第八章/STM32F1开发指南第六章
Mini板子:硬件连接:
LED0->PA.8 LED1->PD.2
低电平点亮LED灯,高电平熄灭LED灯(推挽输出);
WK_UP-> KEY1->PA.15 KEY0->
战舰板:LED0->PB.5 LED1->PE.5
必须用到的文件:misc.c+stm32f10x_gpio.c+stm32f10x_rcc.c(涉及时钟)(FWILB文件夹) ;
可以一次初始化一个IO组下的多个IO,前提是这些IO口的配置方式一样;
7.跑马灯实验
使能IO时钟( RCCAPB2PeriphClockCmd())- 初始化IO口模式( 调用GPIO_Init() ) - 操作IO口,输出高低电平GPIO_SetBits()+GOPIO_ResetBits();
8.定时器讲解:
STM32中文参考手册第12,13,14章/STM32F1开发指南第十四章
之后就没有在单独学习,但是通过实践,以后需要这部分再学习加实践,能够快速上手,前面的短暂时间可以大概了解一下STM32的编程风格和需要注意的点,而最终检验自己学没有学懂的有效途径就是在板子上实践啦!!!
于是,我们先来点个灯
#include "stm32f10x.h"
#include "led.h"
void Delay(u32 count)
{
u32 i=0;
for(i=0;i<count;i++);
}
int main(void)
{
LED_Init();
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
Delay(300000);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
Delay(300000);
}
}