stm32f401ret6例程 嵌入式1 STM32F401开发实战1—LED闪烁和串口收发数据

发布时间:2017-03-17

来源:服务器之家

初学嵌入式系列。

STM32F401RET6是ARM系列开发板,板子开发思路是硬件 软件,研究硬件引脚图,选择合适端口连线(有些不需连线),然后在Keil MDK和Cube开发环境下完成引脚选择和软件编写。这个开发环境比较方便,Cube可以一键生成工程模板,再在Keil里打开模板就可以增添主程序代码实现功能了。下面详细介绍如何点亮LED和进行串口收发数据。

一.硬件环境:

1.STM32F401RET6开发板

2.PC机

软件环境:

1. keil MDK及其器件包pack

2. java环境jre

3. stm32cube.mx及其器件包cubef4

4. ST LinK驱动

5. XCOM串口调试工具

6. USB转TTL驱动

1.LED闪烁:I/O驱动LED2,使用GPIO口的PA5,使用翻转函数让LED2的状态每隔一段时间改变一次,即可实现LED闪烁。为什么是PA5看datasheet图如下:

2. 串口输出数据:USART1的PA9为板子的TX,使用USB转TTL模块,板子串口即和电脑USB连接,将信息发送到电脑,打开XCOM串口调试工具,选用合适的串口和波特率,即可看到串口输出的数据。可以从下图看出是PA9作为TX发送。

三.步骤及截图:

1.在Cube中新建一个工程,选择器件,为STM32F401RET6 :

2.配置引脚,将PA5配置为GPIO_OUT,使用其驱动板子上的led2:

3.配置USART1串口为异步模式:

4. 配置时钟过程:

5.配置时钟为84MHz完成如图:

6.配置外设—GPIO口,设置如图:

7. 设置串口参数,涉及中断:

8. 生成工程代码,注意IDE改为MDK—ARM V5:

勾选Generated files的第一个选项,否则生成文件比较杂乱,不方便进行后续操作:

9.使用Keil开发环境,打开之前建好的工程。修改代码:在uart.c里重定向printf函数,将默认输出改为串口,使之可以显示到电脑上:

10.修改主程序main.c:点亮led和输出数据。其中LED灯闪烁是利用翻转函数实现,一定延时后翻转即可实现闪烁。程序如下:

char *mystr="嵌入式\r\n";

printf("嵌入式实验\r\n");

while(1)

{

HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin); //翻转函数,灯的状态翻转即为闪烁

printf("嵌入式实验\r\n");

HAL_Delay(1000);  //LED2闪烁间隔时间为1000ms即1s

}

11.更改设置(Keil右上角偏中间的一个图标):

ST—LinK Debugger

12.设置SW,1.8MHz

13.设置FLASH算法:这个板子的flash是512k,所以只能选用512K及以上的算法

14. Build编译,flash烧写,LED闪烁,1s亮灭一次,串口输出数据,如下图

到这里第一阶段就结束啦。之后会出联合ESP8266后,手机控制板子LED和AD采样的教程。

stm32f401 边沿捕获_stm32f401ret6例程 嵌入式1 STM32F401开发实战1—LED闪烁和串口收发数据 - 硬件设备 - 服务器之家...相关推荐

  1. [stm32][ucos][ucgui] 2、LED闪烁、串口、滑块、文本编辑框简单例程

    上一篇:[stm32][ucos] 1.基于ucos操作系统的LED闪烁.串口通信简单例程 * 内容简述: 本例程操作系统采用ucos2.86a版本, 建立了7个任务             任务名  ...

  2. 《Linux嵌入式实时应用开发实战(原书第3版)》——1.6 资源

    本节书摘来自华章计算机<Linux嵌入式实时应用开发实战(原书第3版)>一书中的第1章,第1.6节,作者:(美)Doug Abbott 更多章节内容可以访问云栖社区"华章计算机& ...

  3. 《Linux嵌入式实时应用开发实战(原书第3版)》——第2章 安装Linux2.1 发行版...

    本节书摘来自华章计算机<Linux嵌入式实时应用开发实战(原书第3版)>一书中的第2章,第2.1节,作者:(美)Doug Abbott 更多章节内容可以访问云栖社区"华章计算机& ...

  4. 《Linux嵌入式实时应用开发实战(原书第3版)》——3.5 Linux文件系统

    本节书摘来自华章计算机<Linux嵌入式实时应用开发实战(原书第3版)>一书中的第3章,第3.5节,作者:(美)Doug Abbott 更多章节内容可以访问云栖社区"华章计算机& ...

  5. 嵌入式linux驱动开发实战教程,嵌入式Linux驱动开发实战视频教程

    嵌入式Linux驱动开发实战教程(内核驱动.看门狗技术.触摸屏.视频采集系统) 适合人群:高级 课时数量:109课时 用到技术:嵌入式 Linux 涉及项目:驱动开发.看门狗技术.触摸屏.视频采集 咨 ...

  6. 嵌入式STM32入门之定时器控制LED闪烁与产生PWM脉冲宽度调制信号

    定时器控制LED闪烁与产生PWM脉冲宽度调制信号 一.前言 二.定时器基本介绍 (一)STM32定时器 (二)通用定时器主要功能 (三)计数器模式 (四)定时器工作原理 三.实验(1)初识定时器 (一 ...

  7. stm32f401 边沿捕获_STM32_capture 基于 设计的输入捕获实验,通过对边沿跳变的采集,得到外部接口 据。 SCM 单片机开发 261万源代码下载- www.pudn.com...

    文件名称: STM32_capture下载  收藏√  [ 5  4  3  2  1 ] 所属分类: SCM 开发工具: Visual C++ 文件大小: 447 KB 上传时间: 2016-07- ...

  8. stm32f401 边沿捕获_基于ST STM32F401 BLE紫外线监测方案

    针对物联网(IOT)方案,应用意法半导体(ST Microelectronic)提供一个软件配合STM32F401 MCU使用UVIS25数字式紫外线感测组件及透过ST BlueNRGBLE蓝牙低功耗 ...

  9. 嵌入式物联网软件开发实战系列(STM32+FreeRTOS)

    一.使用STM32CubeMx 创建物联网项目软件工程 二.STM32CubeMx 配置时钟 三.STM32CubeMx 配置GPIO 及 GPIO 相关接口在软件工程中的形式及使用 四.STM32C ...

  10. 【嵌入式】——串口实验——实现芯片串口收发数据,按键中断串口发送数据,串口接收数据中断来控制LED亮/灭

    实验目的: 实现芯片串口收发数据,按键中断串口发送数据:按下按键,向串口发送数据,并通过虚拟终端显示出来: 串口接收数据中断来控制LED亮/灭:通过串口助手向MCU发送数据,"A" ...

最新文章

  1. Ember.js 入门指南——查询记录
  2. Flutter持久化存储之文件存储
  3. 【数据结构与算法】之N个数中有K个数可能的组合算法
  4. 触发器_PLCDCS组态中SR触发器介绍
  5. ExtJs UI框架学习五
  6. 在Docker上运行微服务
  7. Java多线程教学演示系统_Java多线程演示样例(模拟通话,sleep,join,yield,wait,notify,Semaphore)...
  8. 计算机语言入门vfp,VFP基础教程第二章VFP语言基础3
  9. java newtonsoft.json_(转载)Newtonsoft.Json使用总结
  10. 互动快报读报软件159份全国主流大报倾情奉献读者
  11. C语言之结构体 共用体 枚举 typedef
  12. Win10访问Linux分区
  13. 如何在工作中设定和使用 SMART 目标
  14. 雷啊:淘宝上卖F22战斗机
  15. 歌咏比赛java代码_JavaEE基础知识
  16. 无法创建新的分区,也找不到现有的分区
  17. 如何修改计算机系统的网络最大连接数?
  18. 京东数科区块链ABS解决方案受国际权威研究机构认可
  19. java bean to bean,Bean_to_Bean 赋值完整解决(可用在实际开发)
  20. Unity Anchors锚点布局不出现的原因

热门文章

  1. LGTM、FYI等项目开发用语,缩略语,感觉其他组员都知道,感觉就自己不知道,不好意问的就看这里把
  2. matlab 元素 最大值和最小值,[转载]matlab中的最大值和最小值
  3. QC4+充电协议_喜大普奔:高通推出QC3+/4+快充协议,这些处理器均支持
  4. 数字转换为汉语中人民币的大写
  5. isilon域环境配置
  6. 手机越贵,打车越贵?复旦教授三万字打车报告,实锤打车软件“大数据杀熟”
  7. Laravel文档阅读笔记-Custom Authentication Login And Registration Using Laravel 8
  8. 网络上的计算机无权限访问权限,权限,教您怎么解决无internet访问权限
  9. IIS导入SSL证书
  10. 用python写一个简单的名片管理系统