USART串口发送

运行环境:

ubuntu18.04.melodic
宏基暗影骑士笔记本
stm32f427IIH6
stlink
9-24v可调电源
usb转串口
杜邦线转4pin

1.1 串口发送

1)用户手册

硬件接口

在这里插入图片描述

在这里插入图片描述蓝色串口3,红色分别是串口6,8,7 (都是4pin对外接口),下面实验选择串口6。

硬件接线:

在这里插入图片描述

2)原理图

UASRT6
发送TX_PG14
接收RX_PG9
在这里插入图片描述在这里插入图片描述

2.1配置

1)串口引脚配置

发送TX_PG14
接收RX_PG9
在这里插入图片描述

在这里插入图片描述

2)通讯配置

异步通讯
奇偶校验位 无
停止位 1
在这里插入图片描述

中断使能:
在这里插入图片描述

3)RCC和SYS

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

为每个外设 生成外设初始化.c/.h文件

在这里插入图片描述

3.1代码分析

在usart.c中,串口已经被初始化好
在这里插入图片描述

3.2添加代码

1)串口发送函数

第一个参数是串口地址,第二个是发送数据,第三个是数据大小,第四个是超时时间。
在这里插入图片描述
在这里插入图片描述

  HAL_UART_Transmit(&huart6, "ABCDEF", 6, 100);

2)硬件和驱动安装

ch340转换器(usart转usb)
在这里插入图片描述

驱动安装:

sudo modprobe ch341

查看usb口:

dmesg

在这里插入图片描述

串口调试助手安装:

sudo apt-get install cutecom

# 启动
sudo  cutecom

在这里插入图片描述

make编译,F5烧录调试

3)launch设置

修改成以下内容:可执行文件名是freeRTOS_LED.elf

{ =400x
    "configurations": [
    

        {
            "showDevDebugOutput": "parsed",
            "cwd": "${workspaceRoot}",
            "executable": "./build/TIM1.elf",
            "name": "Debug STM32",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "device": "stm32f427",
            "configFiles": [
                "interface/stlink-v2-1.cfg",
                "target/stm32f4x.cfg"
            ]
        }
    ]
}

4.1实验效果

vscode不断向串口调试助手发送ABCDEF
在这里插入图片描述


⭐⭐⭐ 嘟嘟崽 ⭐⭐⭐
⭐⭐⭐ 祝你成功 ⭐⭐⭐
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,需要在STM32F103C8T6上配置USART串口通信功能。具体步骤如下: 1. 配置GPIO引脚为USART的传输引脚,设置为复用模式。 2. 配置USART的波特率、数据位、校验位等参数。 3. 配置USART的中断,以便在数据发送完成后进行相应的处理。 下面是一个示例代码: ``` #include "stm32f10x.h" void USART_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); // 使能USART1和GPIOA的时钟 // 配置USART1的引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // USART1_TX GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // USART1配置 USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); // 使能USART1 USART_Cmd(USART1, ENABLE); } void USART_SendData(USART_TypeDef* USARTx, uint16_t Data) { // 等待发送缓冲区为空 while (USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET); // 发送数据 USART_SendData(USARTx, Data); } void Play_WT588D(uint8_t cmd, uint8_t data) { USART_SendData(USART1, 0x7E); // 发送起始字节 USART_SendData(USART1, 0xFF); // 发送命令字节 USART_SendData(USART1, 0x06); // 发送数据长度 USART_SendData(USART1, cmd); // 发送命令 USART_SendData(USART1, data); // 发送数据 USART_SendData(USART1, 0xEF); // 发送结束字节 } int main(void) { USART_Configuration(); // 配置USART // 播放文件 Play_WT588D(0x03, 0x01); // 播放第1个文件 // 降低音量 Play_WT588D(0x06, 0x00); // 将音量降到最低 while (1); } ``` 在上述代码中,在`USART_SendData`函数中,我们向USART发送了要执行的命令和数据。`Play_WT588D`函数是一个自定义函数,用于向WT588D模块发送命令和数据。其中,`cmd`参数表示要执行的命令,`data`参数表示要传输的数据。在示例代码中,我们分别演示了如何播放文件和降低音量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圆嘟嘟2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值