IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32的USART串口通讯 -> 正文阅读

[嵌入式]STM32的USART串口通讯


前言

  • 使用STM32CubeMX实现串口通信
  • 硬件:stm32f103c8t6 核心板
  • 软件:STM32CubeMX 6.3.0
  • 软件:keil5 mdk

一、使用STM32CubeMX

1. 安装固件库

若点击Manage embedded software packages后,出现失败,则需要随便点击其它任一选项,进行下载一些文件,比如点击 file->new project,等下载后,在进行安装固件库。

在这里插入图片描述
选择自己开发板的固件库
在这里插入图片描述

2. 工程设置

点击 file -> new project 建立工程
在这里插入图片描述2.搜索型号,选择合适的型号进行工程建立
在这里插入图片描述
3. 进行系统调试及基准时钟配置。点击 System Core下拉栏中的 SYS。选择debug调试接口。我选择 serial Wire

SW模式就选择serial WireJTAG模式就选择JTAG,4pin和5pin的区别多了一个复位引脚
stlink调试就是SW模式,jlink调试就是JTAG模式

在这里插入图片描述

  1. 进行时钟RCC选项配置。点击 System Core下拉栏中的 RCC。可以都选外部晶振Crystal/Ceramic Resonator
    在这里插入图片描述
  2. 进行系统具体时钟配置。点击Clock Configuration选项栏进入时钟树配置界面。

1.选择外部时钟HSE 8MHz
2.PLL锁相环倍频9倍(8*9=72)
3.系统时钟来源选择为PLL
4.设置APB1分频器为 /2

在这里插入图片描述

  1. 设置串口。这里选择USART1。串口配置的引脚为 PA9、PA10。设置MODE为 异步通信(Asynchronous)
    参数设置 波特率为115200 Bits/s,传输数据长度为8 Bit,奇偶检验无,停止位1。
    在这里插入图片描述
  2. 设置完成后,点击Project Manager 选项,进入工程设置界面,选择 Project 选项。
    在这里插入图片描述
  3. 点击Code Generator ,勾选Generated files在这里插入图片描述
  4. 点击 GENERATE CODE 生成代码。然后打开工程
    在这里插入图片描述
  5. 编译代码。编译无误
    在这里插入图片描述

二、USART串口通信

1.UART函数库介绍

在这里插入图片描述

结构体以及函数定义均在头文件: stm32f1xx_hal_uart.h

UART结构体定义:

UART_HandleTypeDef huart1;

串口发送/接收函数

HAL_UART_Transmit():串口发送数据,使用超时管理机制
HAL_UART_Receive():串口接收数据,使用超时管理机制
HAL_UART_Transmit_IT():串口中断模式发送
HAL_UART_Receive_IT():串口中断模式接收
HAL_UART_Transmit_DMA():串口DMA模式发送
HAL_UART_Transmit_DMA():串口DMA模式接收

串口发送数据:

HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)

功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。
参数:

  • *UART_HandleTypeDef huart:UART结构体( huart1)
  • *pData:需要发送的数据
  • Size:发送的字节数
  • 最大发送时间:发送数据超过该时间退出发送

2.线路连接

在这里插入图片描述
实物连接
在这里插入图片描述

3.代码编写

代码如下:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Serial.h"

int main(void)
{

	Serial_Init();
	
	while (1)
	{
		Serial_SendString("Hello world!\r\n");
		Delay_ms(500);
	}
}

4.测试结果

编译,将程序烧录或下载进核心板,打开串口助手查看接收到的数据。

在这里插入图片描述

5.软件调试

  1. 点击魔法棒,设置debug。勾选Use Simulator 使用软件调试。更改 Dialog DLL 以及Parameter
    在这里插入图片描述

  2. 点击方框内,开始调试,并打开logic analyzer窗口,进行波形分析
    在这里插入图片描述

  3. 点击 Setup 选项,点击蓝色方框,输入USART1_SR,类型设置为比特流,并可以选择设置波形颜色。设置完就可以点击下方 Close 退出了
    在这里插入图片描述

  4. 编译查看波形
    在这里插入图片描述

三、总结

通过本次实验,熟悉了使用STM32CubeMX实现了USART串口通信。

四、参考资料

STM32CubeMX实现串口中断通信
STM32最小核心板F103串口通信USART

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:31:28  更:2022-10-22 21:34:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 14:17:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码