前言

在工程应用中,很多时间为了方便走线会采用单线串口方案,本节将学习stm32 usart单线串口的使用,学会用使用单线串口收发数据。

示例详解

基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。

本示例所用的最小系统板原理图:

  1. 从本节开始,关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
  1. 系统时钟树

  1. USART1配置

  1. 引脚配置(保持默认即可)

引脚保持默认即可,当然实际应用中可以根据自己的需求对其进行重映射。

  1. 中断配置

  1. 工程代码

    1. 在main.c 中加入如下图所示代码:

要使上面代码能成功在串口一打印出数据还需实现 fputc 函数,具体实现如下:

  1. 同时在stm32f1xx_it.c中加入

注意记得在文件中包含usart.h头文件,

  1. 在usart.c 及usart.h中加入以下代码

  1. 到此,使用stm32单线串口的收发实验就此完成,在这个实验中我们学习了单线串口的接收与发送操作,并用printf()函数实现在串口中输出数据,将MCU的PA9(TX)引脚接到串口工具并用串口上位机往串口发送数据,程序会将上位机发送的数据返回给上位机!实验效果如下:

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!

文中资料下载,在公众号里给十三发消息:

下载|STM32基础系列教程10

关注十三公众号

STM32 基础系列教程 10 - 单线串口(半双工)相关推荐

  1. STM32 基础系列教程 9 – 串口通信

    前言 学习stm32 usart串口的使用,学会用Printf() 函数打印信息. 示例详解 基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用 ...

  2. STM32 基础系列教程 50 – MbedTls

    前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站上指出,mbed ...

  3. STM32 基础系列教程 49 – Jansson

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  4. STM32 基础系列教程 48 – CJSON

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  5. STM32 基础系列教程 47 - MD5

    前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信 ...

  6. STM32 基础系列教程 46 – RNG

    前言 随机数发生器(RNG)是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.STM32F407自带RNG ,本节将给大演示STM32F4系列MCU中的RNG的使用.用 ...

  7. STM32 基础系列教程 45 - FSMC_LCD_Touch

    前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基 ...

  8. STM32 基础系列教程 44 - FSMC_LCD

    前言 TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为: Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD. STN- ...

  9. STM32 基础系列教程 43 – SRAM

    前言 STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合, 比如跑算法或者跑 GUI 等,自带的这些内存就不够用了.比如跑算法或者 ...

最新文章

  1. ajax获取php cookie,Ajax 无法跨域获取 cookie
  2. for循环与while循环效率对比·5年以下编程经验必看C#】
  3. linux和用户账户相关的系统文件
  4. 计算机二级考试题停车收费,计算机二级考试真题-Excel-停车场调整收费标准
  5. 深搜DFS\广搜BFS 图初步入门
  6. tomcat域名绑定设置
  7. python 编程提高效率_15 个提高效率的 Python 编程技巧
  8. 还原数据库时不能独占访问
  9. arp***的判断与解决方案总结
  10. 行业下行,丧失亮点的OPPO慢人一步
  11. python面向对象的编程_python面向对象的编程
  12. 如何用SCRM销售管理系统管理销售和做销售管理
  13. 关于360系列手机定位不准确中的一种问题--位置穿越
  14. Python打开电脑文件夹
  15. 软件工程专业四个方向
  16. 智能手机操作系统大全-未完待续
  17. kingcms php 漏洞,kingcms5.0/5.1漏洞
  18. PAC 代理自动发现简介
  19. 什么是赛顿? Python以C的速度
  20. Flowable高级篇 - Flowable表结构

热门文章

  1. AntData.ORM框架 之 读写分离
  2. iOS使用AVCaptureSession自定义相机
  3. 写给过去的自己-No.2-数据结构篇-初尝柔性数组
  4. sublime text 2用package control安装插件时显示成功安装但实际没装上的问题
  5. linux下字符串查找 与替换
  6. DirectX SDK 9.28版本安装错误S1023
  7. 图解用Scientific Toolworks Understand分析Microsoft DirectX SDK (June 2010)自带D3D示例
  8. Design Pattern----21.Behavioral.Memento.Pattern (Delphi Sample)
  9. [转]SQL,LINQ,Lambda语法对照图
  10. 【洛谷p1058】立体图(已完结)