STM32F411核心板固件库开发(一) GPIO基本配置
暑假这几天天气比较炎热,在宿舍和室友偶然谈起STM32芯片,他说他有块F411的核心板。鉴于我之前用的几款芯片主要是F103系列和F407系列,对于F411系列的核心板倒没怎么用过。我一时心血来潮,就想玩一玩这块F411核心板。无论是F103系列也好,F407系列也罢,原理都是一样的,F411也一样。既然这样,就和这块F411芯片打打招呼。
(一)资料准备
使用的F411核心板如下图:
拿到核心板后,拿到眼前细细查看,依稀看见丝印上的芯片型号:411CEU6 。确认芯片型号后,就前往ST官网去找这款411CEU6
顺利找到芯片的家门
在reference manual 里面先瞅一眼F411xC/E 系列芯片的片上外设情况:
F411CEU6芯片引脚信息如下:
数了一下,一共48个引脚,相较于F103系列的RCT6和ZET6,引脚资源不算很多,了解这些基本信息后,就可以进行下一步的实验了。
建立工程模板
因为要点亮F411板载LED,需要查询核心板的原理图。掏出原理图,CTRL+F,快速查找LED
上面这个就是核心板上F411CEU6的原理图
可以看到,PC13控制LED的亮灭。当PC13输出低电平,发光二极管就会导通。
(二)建立工程模板
既然硬件的情况已经清楚,接下来就可以直接写初始化外设,配置寄存器参数了。但暂时不忙写代码,测试一下这个空的工程先。
不出意外的话,肯定会报错的
报错是正常的,因为在这里,我没有定义芯片型号是STM411,导致stmf4xx.h文件内配置无法使用
修改一下上图中define的内容就好,改完后如下所示:
重新尝试编译,哈哈,不出意外的话还是会报错。没关系,我们把stm32f4xx_fsmc.c文件和stm32f4xx_fmc.c和不纳入编译就好了。
现在就没有问题了
(三)编写代码
因为只是做实验,我就直接在主函数内控制LED,不去写硬件宏定义那些
1、GPIO初始化
void LED_GPIO_Config(void)
{ /*定义一个GPIO_InitTypeDef类型的结构体*/GPIO_InitTypeDef GPIO_InitStructure;/*开启LED相关的GPIO外设时钟*/RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOC, ENABLE); /*选择要控制的GPIO引脚*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; /*设置引脚模式为输出模式*/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; /*设置引脚的输出类型为推挽输出*/GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;/*设置引脚为上拉模式*/GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;/*设置引脚速率为2MHz */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*调用库函数,使用上面配置的GPIO_InitStructure初始化GPIO*/GPIO_Init(GPIOC, &GPIO_InitStructure); /*关闭LED灯*/GPIO_SetBits(GPIOC, GPIO_Pin_13);
}
2、主函数
int main(void)
{LED_GPIO_Config();GPIO_ResetBits(GPIOC, GPIO_Pin_13);while(1);}
(四)代码烧录
编译通过后,就开始进行烧录,实验采用SWD烧录方式,SWD只需要四线,也比较方便。而且程序也比较小,烧录的速度差异也体现不出来。
(五)实验现象
为使实验现象更加明显,我增加了延时效果,让LED闪烁。烧录程序成功后,记得按下复位键:
实验成功,已经成功和F411CEU6打过招呼了,下次和它互动一下。
实验例程
STM32F411核心板固件库开发(一) GPIO基本配置相关推荐
- STM32F411核心板固件库开发(四) ADC配置
(一)CEU6的ADC 因为之前已经和F411CEU6先生打过招呼了,这次呢,我们就让F411CEU6先生帮助我们完成电压采集的工作,我们要用一下F411CEU6的ADC模块. 这是F411CEU6的 ...
- STM32F411核心板固件库开发(二) USART配置
(一)芯片USART信息 我自己手上的F411CEU6只有48个引脚,属于UFQFPN48封装.对于同一系列型号的芯片,封装不一样,引脚的个数也会不一样,芯片上的外设资源自然也会不一样.UFQFPN4 ...
- STM32F411核心板固件库开发(三) 按键检测
对于自己手上的这款核心板,考虑到还有一个外部外设没有使用,为了比较充分地用好板上的资源,在这里使用一个按键检测. (一)按键外设 1.核心板 2.核心板原理图 按键上端和PA0引脚相连,按键下端接地. ...
- GD32F303固件库开发(5)----GPIO输出模式,速率测试、开漏和输出说明
GD32F303固件库开发.5----GPIO输出模式,速率测试.开漏和输出说明 概述 样品申请 视频教学 csdn课程 硬件准备 开发板管脚配置 不同速率对应的波形 GPIO_OSPEED_2MHZ ...
- GD32F303固件库开发(16)----移植兆易创新SPI Nor Flash之GD25Q64Flash
spi概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的 ...
- GD32F303固件库开发
GD32F303固件库开发 芯片申请 GD32F303固件库开发(1)----前期准备与烧录 GD32F303固件库开发(2)----读保护与写保护 GD32F303固件库开发(3)----使用固件库 ...
- GD32F303固件库开发(10)----双ADC轮询模式扫描多个通道
GD32F303固件库开发.10----双ADC轮询模式扫描多个通道 概述 视频教学 csdn课程 样品申请 硬件准备 keil配置 使能串口 串口重定向 ADC通道设置 ADC0初始化 ADC0配置 ...
- GD32F303固件库开发(11)----ADC在DMA模式下扫描多个通道
GD32F303固件库开发.11----双ADC轮询模式扫描多个通道 概述 视频教学 csdn课程 样品申请 硬件准备 keil配置 使能串口 串口重定向 ADC通道设置 DMA设置 ADC0初始化 ...
- GD32F303固件库开发(13)----定时器TIM捕获PWM测量频率与占空比
GD32F303固件库开发.13----定时器TIM捕获PWM测量频率与占空比 概述 视频教学 csdn课程 样品申请 生成例程 keil配置 使能串口 串口重定向 占空比与频率计算 GPIO初始化 ...
最新文章
- Python自动化开发学习2
- solidworks经典实例网盘下载_Solidworks自学视频教程(附源文件)讲解详细到位,成就设计高手...
- Java虚拟机new和newarray相关指令学习
- python开发基础教程
- 从零开始创建一个vue项目
- hdu1285 拓扑排序(裸)
- CF997E. Good Subsegments(线段树,单调栈)
- 动态规划入门(一)——数字三角形
- asp.net(c#)网页跳转七种方法小结
- 虚拟化学习笔记-虚拟机迁移的分类及原理
- STL(1)——查找函数find的使用
- Unsatisfied forward or external declaration 错误分析
- Axure图片不显示
- WPS启动不再默认展示“稻壳”页面 - 去除稻壳的方法
- SAP接口编程 之 JCo3.0系列:JCoDestination
- python selenium 爬虫遇到 由于目标计算机积极拒绝,无法连接
- 豌豆荚PC端版本WanDouJia_2.80.1.7144_homepage.exe
- 华为数通HCIA学习笔记之OSI参考模型TCP/IP模型
- 【springboot进阶】RestTemplate 集成 okhttp3 请求带p12证书
- EEGLAB直接读入Curry8软件采集的数据信号