Ps:本人新手,发文以记录整理知识、加深理解、方其他新手之便、欢迎批评指正。欢迎大佬、同志茶余饭后当看个动态,更欢迎评论出你们建议和意见。
stm32第一次亮灯总结
环境
- 核心板:GD(stm)32f03c8t6方案验证板
- IDE:MDK-ARM(Keil5\MDK5)
个人基础不多,第一次拿到朋友送的这个板子比较感兴趣,晚上一直在CSDN上翻文章,从零开始配置环境,边抄边改亮灯的程序到最后烧入,一直搞到凌晨5点多,也是绝了。
步骤
1.下载MDK5并“注册”
CSDN引用-安装keil5(MDK)及导入pack包教程 该文章介绍了MDK软件的安装与“注册”、添加设备固件包(文中该部分其实直接双击安装即可) 如果文中注册机失效或者找不到注册机,可以下载我提供的 链接:https://pan.baidu.com/s/1fN5sHcum53MjH7e-OS0hNg 提取码:6666
2.官网下载对应芯片的标准库文件
CSDN引用-STM32固件库下载步骤 该文章介绍了如何从官网下载对应芯片的固件库(标准固件库)
CSDN引用-STM32官方固件库(标准固件库)下载及介绍 该文章简单介绍了标准外设库、如何从官网下载对应芯片的固件库、库文件内容介绍
3.官网下载芯片Pack包
CSDN引用-安装keil5(MDK)及导入pack包教程 该文章介绍了MDK软件的安装与“注册”、添加设备固件包(文中该部分其实直接双击安装即可)
4.官网下载ST-Link仿真器驱动
官网ST-Link下载地址
5.新建工程与程序烧录
!!!十分推荐的文章,可结合我上面的步骤一起看 CSDN引用-keil MDK5搭建STM32开发环境 该文章介绍了MDK5的安装与“注册”、安装固件包、新建新工程(特别介绍了新建工程中最后一步的运行环境管理器窗口,并介绍了通过选项配置需要的官方库)、新建程序示例、程序烧录的两种方式(生成HEX文件、用MDK上传程序)、ST-Link驱动的安装与使用。
依据上面文章新建工程,并在此基础上根据验证板原理图修改对应GPIO,以及对照标准库中GPIO.c和相关.h文件规范修改,最终修改形成我的main.c程序:
//这是一个点亮LED的程序,LED接在PA8,PB13,PB14,PB15
#include "stm32f10x_conf.h"
int main()
{
//GPIO使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
//PA8
GPIO_InitTypeDef GPIO_InitStruct8;
GPIO_InitStruct8.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStruct8.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct8.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct8);
//PB13
GPIO_InitTypeDef GPIO_InitStruct13;
GPIO_InitStruct13.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStruct13.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct13.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStruct13);
//PB14
GPIO_InitTypeDef GPIO_InitStruct14;
GPIO_InitStruct14.GPIO_Pin = GPIO_Pin_14;
GPIO_InitStruct14.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct14.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStruct14);
//PB15
GPIO_InitTypeDef GPIO_InitStruct15;
GPIO_InitStruct15.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStruct15.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct15.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStruct15);
while (1) {
//GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_SET);
//GPIO_SetBits(GPIOB,GPIO_Pin_14);
//GPIO_SetBits(GPIOB,14);
GPIO_WriteBit(GPIOA,GPIO_Pin_8,1);
GPIO_WriteBit(GPIOB,GPIO_Pin_13,1);
GPIO_WriteBit(GPIOB,GPIO_Pin_14,1);
GPIO_WriteBit(GPIOB,GPIO_Pin_15,1);
}
}
其他
CSDN引用-如何借助官网例程学习STM32 该文章介绍了官网例程的使用,注意是example中的文件拷至template(模板)项目中。
|