0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在STM32F4 ARM MCU和Python之间建立USART通信

454398 来源:wv 2019-10-16 11:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:软件和硬件要求

在硬件方面,您需要:

STM32F4发现板(或其他任何STM32板)

USB转TTL转换器

在软件方面:

STM32CubeMX

Keil uVision5

已安装串行库的Python

步骤2:STM32CubeMX配置

首先让我们了解我们想要做什么。我们希望通过USART从Python将数据传输到板上,并检查是否有正确的数据并切换LED。因此,我们需要启用USART和Led。

从“连接性”选项卡中启用USART2。

将模式更改为异步

波特率更改为9600 Bits/s

无奇偶校验的字长为8位

无奇偶校验位

DMA设置中以特殊模式添加USART2_RX

从NVIC设置中启用USART2全局中断

然后生成代码:)

通过单击PD12启用LED

步骤3:Keil软件开发

#include

#include

在字符串操作和定义布尔变量时将需要这些库。

/* USER CODE BEGIN 2 */

HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1);

/* USER CODE END 2 */

此处,UART

/* USER CODE BEGIN 4 */

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

{

/* Prevent unused argument(s) compilation warning */

UNUSED(huart);

/* NOTE: This function should not be modified, when the callback is needed,

the HAL_UART_RxCpltCallback could be implemented in the user file

*/

if(data_buffer[0] != ‘ ’){

data_full[index_] = data_buffer[0];

index_++;

}else{

index_ = 0;

finished = 1;

}

//HAL_UART_Transmit(&huart2, data_buffer, 1, 10);

}

/* USER CODE END 4 */

这是ISR,当我们得到一个字节的字符时,它被激活。所以。我们得到该字节并将其写入包含完整接收数据的data_full,直到得到‘\ n’。当我们得到‘\ n’时,我们使完成标志1并在while循环中:

while (1)

{

/* USER CODE END WHILE */

if(finished){

if(strcmp(data_full, cmp_) == 0){

HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12);

}

memset(data_full,‘’,strlen(data_full));

finished = 0;

}else{

__NOP ();

}

/* USER CODE BEGIN 3 */

}

如果完成标志为HIGH,我们将比较完整接收的数据和我们想要的数据的内容,如果它们是等于我们切换领导。之后,我们清除完成标志,等待新数据,并清除data_full数组,以免覆盖该数组。

步骤4:Python软件开发

因此,这里我们要在结尾处发送带有‘/n’的数字,因为Keil软件需要查看它才能知道结尾。

import serial

ser = serial.Serial(‘COM17’) #check that port on your device from Device Manager

ser.write(b‘24 ’)

您应该看到每次您发送“ 24 \ n”时,LED都会切换。如果您发送其他任何内容,它都不会影响它。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19126

    浏览量

    403746
  • USART
    +关注

    关注

    1

    文章

    202

    浏览量

    33316
  • python
    +关注

    关注

    58

    文章

    4885

    浏览量

    90302
  • STM32F4
    +关注

    关注

    3

    文章

    204

    浏览量

    30302
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入剖析STM32L010F4/K4:低功耗32位MCU的卓越之选

    深入剖析STM32L010F4/K4:低功耗32位MCU的卓越之选 在当今对功耗要求日益严苛的电子设备领域,低功耗微控制器(MCU)的重要性不言而喻。
    的头像 发表于 04-15 15:40 226次阅读

    STM32F042x4/STM32F042x6微控制器深度解析:特性、应用与设计要点

    STM32F042x4/STM32F042x6系列微控制器集成了高性能的ARM® Cortex® - M0 32位RISC内核,最高运行频率可达48 MHz。它拥有高速嵌入
    的头像 发表于 03-19 17:15 607次阅读

    LAT1171+STM32F745 USART1 Bootloader 失败原因分析与解决

    使用 STM32F745 进行产品开发的时候,出现了使用 STM32CubeProgramer 无法通过 USART1 Bootloader 进行程序升级的问题。为了解决客户的问题,我在 NUCLEO-
    发表于 01-11 17:33 0次下载

    中科芯CKS32F030F4P6 MCU在电池包中的应用方案

    CKS电池包显示板基于32位低功耗MCU:CKS32F030F4P6设计,内核ARM Cortex-M0+,工作于 48MHz 时钟频率, 高速的嵌入式闪存(FLASH 最高可达 32K 字节
    的头像 发表于 11-12 09:44 3688次阅读
    中科芯CKS32<b class='flag-5'>F030F4</b>P6 <b class='flag-5'>MCU</b>在电池包中的应用方案

    SDK资源包bug drv_usart.c不能使用UART9及以上的串口怎么解决?

    问题一: 用Studio生成STM32F4工程,发现在board.h 配置串口9(BSP_USING_UART9)有问题,观察drv_usart.c文件发现没有串口8以上的代码。 注:stm32有些
    发表于 09-25 06:37

    【教程】使用STM32F4进行E22-400T22S编程通信教程

    通过本文带大家零基础使用STM32F407VET6单片机进行E22-400T22S模块编程并进行简单的通信,当然如果学会了,也可以举一反三应用于E22、E220、E32所有模块上。一、STM32环境
    的头像 发表于 08-28 19:32 2518次阅读
    【教程】使用<b class='flag-5'>STM32F4</b>进行E22-400T22S编程<b class='flag-5'>通信</b>教程

    GD32F4xx系列MCU基础工程资料

    GD32F4xx系列MCU基础工程创建.
    发表于 08-04 14:53 2次下载

    stm32f4新手求教

    芯片包stm32f4xx_DFP3.0.0只有1.98m大小,芯片包stm32f4xx_DFP2.16.0却有152m大小,为何差距这么大,我该装哪个芯片包?
    发表于 07-09 12:04

    【教程】零基础!手把手教你使用STM32F4进行E22-400T22S编程通信

    通过本文带大家零基础使用STM32F407VET6单片机进行E22-400T22S模块编程并进行简单的通信,当然如果学会了,也可以举一反三应用于E22、E220、E32所有模块上。一STM32环境
    的头像 发表于 07-03 19:32 1812次阅读
    【教程】零基础!手把手教你使用<b class='flag-5'>STM32F4</b>进行E22-400T22S编程<b class='flag-5'>通信</b>

    使用studio构建STM32F4工程报错的原因?

    使用studio 构建STM32F4 工程,什么都没有动报了以上错误.这是为什么 ?
    发表于 06-26 07:26

    STM32F4标准外设库资料

    stm32f4xx.h,标准外设库
    发表于 06-08 09:49 5次下载

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料
    发表于 06-06 17:06 17次下载

    Analog Devices Inc. MAX32675C超低功耗Arm® Cortex®-M4F MCU数据手册

    Analog Devices MAX32675C超低功耗Arm® Cortex®-M4F MCU是高度集成的混合信号微控制器,适用于工业应用,特别适用于4mA至20mA环路供电传感器和
    的头像 发表于 06-03 10:04 1241次阅读
    Analog Devices Inc. MAX32675C超低功耗<b class='flag-5'>Arm</b>® Cortex®-M<b class='flag-5'>4F</b> <b class='flag-5'>MCU</b>数据手册

    零知开源——STM32F4驱动MAX31865实现PT100高精度测温

    STM32F
    PCB56242069
    发布于 :2025年05月26日 18:25:17

    ADuCM4050集成电源管理的超低功耗ARM Cortex-M4F MCU技术手册

    ADuCM4050微控制器单元(MCU)是一款集成电源管理的超低功耗集成式微控制器系统,可用于处理、控制和连接。MCU系统基于Arm® Cortex®-M4F处理器。
    的头像 发表于 05-08 14:56 1377次阅读
    ADuCM4050集成电源管理的超低功耗<b class='flag-5'>ARM</b> Cortex-M<b class='flag-5'>4F</b> <b class='flag-5'>MCU</b>技术手册