暑假这几天天气比较炎热,在宿舍和室友偶然谈起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基本配置相关推荐

  1. STM32F411核心板固件库开发(四) ADC配置

    (一)CEU6的ADC 因为之前已经和F411CEU6先生打过招呼了,这次呢,我们就让F411CEU6先生帮助我们完成电压采集的工作,我们要用一下F411CEU6的ADC模块. 这是F411CEU6的 ...

  2. STM32F411核心板固件库开发(二) USART配置

    (一)芯片USART信息 我自己手上的F411CEU6只有48个引脚,属于UFQFPN48封装.对于同一系列型号的芯片,封装不一样,引脚的个数也会不一样,芯片上的外设资源自然也会不一样.UFQFPN4 ...

  3. STM32F411核心板固件库开发(三) 按键检测

    对于自己手上的这款核心板,考虑到还有一个外部外设没有使用,为了比较充分地用好板上的资源,在这里使用一个按键检测. (一)按键外设 1.核心板 2.核心板原理图 按键上端和PA0引脚相连,按键下端接地. ...

  4. GD32F303固件库开发(5)----GPIO输出模式,速率测试、开漏和输出说明

    GD32F303固件库开发.5----GPIO输出模式,速率测试.开漏和输出说明 概述 样品申请 视频教学 csdn课程 硬件准备 开发板管脚配置 不同速率对应的波形 GPIO_OSPEED_2MHZ ...

  5. GD32F303固件库开发(16)----移植兆易创新SPI Nor Flash之GD25Q64Flash

    spi概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的 ...

  6. GD32F303固件库开发

    GD32F303固件库开发 芯片申请 GD32F303固件库开发(1)----前期准备与烧录 GD32F303固件库开发(2)----读保护与写保护 GD32F303固件库开发(3)----使用固件库 ...

  7. GD32F303固件库开发(10)----双ADC轮询模式扫描多个通道

    GD32F303固件库开发.10----双ADC轮询模式扫描多个通道 概述 视频教学 csdn课程 样品申请 硬件准备 keil配置 使能串口 串口重定向 ADC通道设置 ADC0初始化 ADC0配置 ...

  8. GD32F303固件库开发(11)----ADC在DMA模式下扫描多个通道

    GD32F303固件库开发.11----双ADC轮询模式扫描多个通道 概述 视频教学 csdn课程 样品申请 硬件准备 keil配置 使能串口 串口重定向 ADC通道设置 DMA设置 ADC0初始化 ...

  9. GD32F303固件库开发(13)----定时器TIM捕获PWM测量频率与占空比

    GD32F303固件库开发.13----定时器TIM捕获PWM测量频率与占空比 概述 视频教学 csdn课程 样品申请 生成例程 keil配置 使能串口 串口重定向 占空比与频率计算 GPIO初始化 ...

最新文章

  1. Python自动化开发学习2
  2. solidworks经典实例网盘下载_Solidworks自学视频教程(附源文件)讲解详细到位,成就设计高手...
  3. Java虚拟机new和newarray相关指令学习
  4. python开发基础教程
  5. 从零开始创建一个vue项目
  6. hdu1285 拓扑排序(裸)
  7. CF997E. Good Subsegments(线段树,单调栈)
  8. 动态规划入门(一)——数字三角形
  9. asp.net(c#)网页跳转七种方法小结
  10. 虚拟化学习笔记-虚拟机迁移的分类及原理
  11. STL(1)——查找函数find的使用
  12. Unsatisfied forward or external declaration 错误分析
  13. Axure图片不显示
  14. WPS启动不再默认展示“稻壳”页面 - 去除稻壳的方法
  15. SAP接口编程 之 JCo3.0系列:JCoDestination
  16. python selenium 爬虫遇到 由于目标计算机积极拒绝,无法连接
  17. 豌豆荚PC端版本WanDouJia_2.80.1.7144_homepage.exe
  18. 华为数通HCIA学习笔记之OSI参考模型TCP/IP模型
  19. 【springboot进阶】RestTemplate 集成 okhttp3 请求带p12证书
  20. EEGLAB直接读入Curry8软件采集的数据信号

热门文章

  1. 高斯混合模型的matlab实现
  2. ES6、 ES7、 ES8、 ES9、 ES10 新特性概览
  3. ZigBee-CC2530单片机 - 实现计算机串口通讯控制LED发光二极管
  4. [高中作文赏析]跋涉与成功
  5. python :jieba库的使用大全
  6. Cocos2d-x游戏开发之Lua 5.1 参考手册
  7. 练习题---acmcoder上台阶问题-用Java实现
  8. 停车场门禁控制系统的状态机
  9. 将两个有序列表合并,并保持顺序(一)
  10. SQL合并 合并id相同的数据