最近需要获得一些DSP相关的数据所以想用STM32作为主控获取数据刚好有一块正点原子的mini开发板重操旧业再学习一下STM32的相关知识。同时以寄存器的操作方式更深入了解相关的工作方式。第一部分尝试一些芯片是否损坏及开发环境的配置这里我使用的keil5版本是有很多破解教程这里不赘述同时使用的下载器是ST-Link,并且安装了STM32 ST-LINK Utility安装教程也有很多同时由于STM32F103芯片过老在keil5中可能没有对应的version 5 编译器建议再安装一下相关安装步骤链接也有Keil 5 找不到编译器 Missing:Compiler Version 5 的解决方法_missing compiler version 5-CSDN博客h环境没问题后我们需要创建工程将ST公司标准库的启动文件复制到我们的文件夹路径。由于我第一次实验只是对led灯的点亮这里使用寄存器的配置方式所以我的工程文件夹只创建两个一个start,一个user。将标准库中这些文件放入start文件夹当中user文件夹只创建主函数main.c之后就可以在keil5中new project,创建工程然后点击管理项目。与之前创建的文件保持一致。如果对创建项目和配置环境有不懂可以参考别人的博客。第一次实验重点 LED点灯。首先我们要了解开发板的原理图和芯片的原理图如下图这块mini 开发板上有两个LED灯对应PA8PD2LED原理图表示当DS0 DS1为低电平是发光二极管导通LED点亮所以我们配置寄存器需要将PA8,PD2的输出引脚配置为0。在这里我以点亮PA8引脚的LED为例说明。首先STM32 单片机配置步骤通常包括以下几个关键环节开启时钟如 GPIOA 时钟。配置引脚的工作模式输入、输出、复用。设置引脚的输出电平通过ODR或BSRR。配置外设如 USART、SPI、ADC 等。启用中断如果需要。因为我们只是配置PA8的引脚输出所以只需上面的前三步。1.开启时钟在stm32f10X数据手册中我们知道系统图GPIO是挂载在APB2上面的而时钟是由RCC发出的。在数据手册中6.3.7中可以启动APB2外部时钟我们只需要将该寄存器第2位IOPA EN给1其他位给0,也就是整个寄存器给0x04,就能开启时钟。而该寄存器地址为 起始地址 偏移地址。在数据手册 2.3中我们可以查询到各部分的起始地址所以该寄存器地址为0x0x40021000 0x18 让该寄存器里面内容为0x04即 我们用c语言指针解引用。*(uint32_t *)(0x40021000 0x18) 0x04; 即可开启时钟。2.配置引脚的工作模式如图我们只需配置CNF8,和它对应的MODE这里我们只需配置成输出模式我们可以设置为最大速度输出MODE为11CNF8为00。即该寄存器配置为0x03即可对应查找它起始地址加上偏移地址。*(uint32_t *)(0x40010800 0x04) 0x03; 即可3.设置引脚的输出电平通过ODR或BSRR。这里我们设置PA8为低电平0,同样*(uint32_t *)(0x40010800 0x0C) 0xfeff;即可配置好点灯项目。main.c 整体代码如下while(1){}是为了让单片机一直保持循环。#include stdint.h int main(void) { //1.时钟配置 *(uint32_t *)(0x40021000 0x18) 0x04; //2.GPIO工作模式的配置 *(uint32_t *)(0x40010800 0x04) 0x03; //3.端口给信号 *(uint32_t *)(0x40010800 0x0C) 0xfeff; while(1){} }
STM32F103RCT6芯片的正点原子mini开发板学习笔记(1)
最近需要获得一些DSP相关的数据所以想用STM32作为主控获取数据刚好有一块正点原子的mini开发板重操旧业再学习一下STM32的相关知识。同时以寄存器的操作方式更深入了解相关的工作方式。第一部分尝试一些芯片是否损坏及开发环境的配置这里我使用的keil5版本是有很多破解教程这里不赘述同时使用的下载器是ST-Link,并且安装了STM32 ST-LINK Utility安装教程也有很多同时由于STM32F103芯片过老在keil5中可能没有对应的version 5 编译器建议再安装一下相关安装步骤链接也有Keil 5 找不到编译器 Missing:Compiler Version 5 的解决方法_missing compiler version 5-CSDN博客h环境没问题后我们需要创建工程将ST公司标准库的启动文件复制到我们的文件夹路径。由于我第一次实验只是对led灯的点亮这里使用寄存器的配置方式所以我的工程文件夹只创建两个一个start,一个user。将标准库中这些文件放入start文件夹当中user文件夹只创建主函数main.c之后就可以在keil5中new project,创建工程然后点击管理项目。与之前创建的文件保持一致。如果对创建项目和配置环境有不懂可以参考别人的博客。第一次实验重点 LED点灯。首先我们要了解开发板的原理图和芯片的原理图如下图这块mini 开发板上有两个LED灯对应PA8PD2LED原理图表示当DS0 DS1为低电平是发光二极管导通LED点亮所以我们配置寄存器需要将PA8,PD2的输出引脚配置为0。在这里我以点亮PA8引脚的LED为例说明。首先STM32 单片机配置步骤通常包括以下几个关键环节开启时钟如 GPIOA 时钟。配置引脚的工作模式输入、输出、复用。设置引脚的输出电平通过ODR或BSRR。配置外设如 USART、SPI、ADC 等。启用中断如果需要。因为我们只是配置PA8的引脚输出所以只需上面的前三步。1.开启时钟在stm32f10X数据手册中我们知道系统图GPIO是挂载在APB2上面的而时钟是由RCC发出的。在数据手册中6.3.7中可以启动APB2外部时钟我们只需要将该寄存器第2位IOPA EN给1其他位给0,也就是整个寄存器给0x04,就能开启时钟。而该寄存器地址为 起始地址 偏移地址。在数据手册 2.3中我们可以查询到各部分的起始地址所以该寄存器地址为0x0x40021000 0x18 让该寄存器里面内容为0x04即 我们用c语言指针解引用。*(uint32_t *)(0x40021000 0x18) 0x04; 即可开启时钟。2.配置引脚的工作模式如图我们只需配置CNF8,和它对应的MODE这里我们只需配置成输出模式我们可以设置为最大速度输出MODE为11CNF8为00。即该寄存器配置为0x03即可对应查找它起始地址加上偏移地址。*(uint32_t *)(0x40010800 0x04) 0x03; 即可3.设置引脚的输出电平通过ODR或BSRR。这里我们设置PA8为低电平0,同样*(uint32_t *)(0x40010800 0x0C) 0xfeff;即可配置好点灯项目。main.c 整体代码如下while(1){}是为了让单片机一直保持循环。#include stdint.h int main(void) { //1.时钟配置 *(uint32_t *)(0x40021000 0x18) 0x04; //2.GPIO工作模式的配置 *(uint32_t *)(0x40010800 0x04) 0x03; //3.端口给信号 *(uint32_t *)(0x40010800 0x0C) 0xfeff; while(1){} }