1)实验平台:【正点原子】 NANO STM32F103 开发板2)摘自《正点原子STM32 F1 开发指南(NANO 板-HAL 库版)》 第三十章 串口 IAP 实验IAP,即在应用编程。很多单片机都支持这个功能,STM32F1 也不例外。在之前的 FLASH模拟 EEPROM 实验里面,我们学习了 STM32F1 的 FLASH 自编程,本章我们将结合 FLASH自编程的知识,通
1、前言前面已经介绍了怎么安装keil5.29和破解keil5.29,下面进行STM32F103的新建工程。2、工程的准备在进行创建工程前,需要做好如下几个前提。 1)STM32F103的芯片包 2)准备好STM32的固件库 3)创建好工程文件和目录以下为上面三个准备的步骤:2.1:芯片包的下载下面这个是芯片包的官方下载地址。官方链接:https://www.keil.com/dd2/Pack/下
测试单片机是STM32F427ZGT6,CAN外设的主频是45MHzCan外设配置TTCM(Time triggered communication mode)时间触发模式,用于生成时间戳,可以实现分时同步功能ABOM(Automatic bus-off management) 自动离线管理,当节点检测到它发送错误或接收错误超过一定值时,会自动进入离线状态AWUM(Automatic bus-of
转载 5月前
52阅读
1、CM3内核支持256个中断,包含了16个内核中断和240个外部中断,并且具有256级可编程中断。2、STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。3、STM32有84个中断,包括了16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。4、STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)5、中断管理方法:首先,对STM32中断进行分组,组0
第5章   ThreadX操作系统移植(MDK AC6)本章节将为大家介绍ThreadX内核的MDK AC6方式移植和设计框架,理论上不建议初学者直接学习,因为本章节涉及到的知识点很多,建议对ThreadX的应用有一些了解后再来看,这样将事半功倍。但是本章的工程模板框架一定要学习。虽然本章节是以我们开发板为例进行移植的,但是教会大家如何移植到自己的板子上以及移植过程中的注意事项
STM32智能定位系统保姆级教程(一)硬件介绍写在前面产品概述模块特性各模块引脚说明串口连接调试说明操作说明原理图及PCB3D打印逻辑关系 写在前面好久没更新了,小更一下 这是完全看完就可实现的教程哦 第二期在写在写了。。版本V1.0使用WIFI进行通信,STM32MINI板控制V2.0PCB打样,使用电池供电,加入DTU 4G模组,使用TEA加密技术连接服务器产品概述应用场景:车辆定位器,宠物
文章目录一、地址和寄存器映射二、GPIO地址映射1.总线基地址2. 外设基地址3.外设寄存器三、C 语言对寄存器的封装1.封装总线和外设基地址2.封装寄存器列表四、GPIO端口的初始化及相关原理1.时钟配置2.输入输出模式设置与最大速率设置3.控制引脚输出电平五、实现过程1.准备材料2.创建工程3.main.c具体代码1)C语言编程实现流水灯2)汇编语言实现流水灯4.烧录5.接线六、实验效果七、
最近要写个串口间通信的程序,要求PC端输入消息到串口1,然后stm32内部把该消息通过串口2转发出去,串口2得到消息返回,则通过串口1打印在PC端。实际上总体效果就是要是连接了设备的串口2具有串口1的功能,以便观察设备返回的信息以作后续的处理。使用的芯片是stm32l151,采用中断接收方式,把串口2所收到的消息全部打印出来。一开始直接参考原子的程序以接收回车键判断接收一次数据结束,实际上这样做的
主要内容: 1) 串行通信接口背景知识; 2) STM32F1串口框图讲解; 3) STM32串口部分常用寄存器和库函数; 4) 串口配置一般方法; 5) ALIENTEK提供的公用代码usart.c和usart.h解读。官方资料:《STM32中文参考手册V10》第25章——通用同步异步收发器(USART)1. 处理器与外部设备通信的两种方式 1.1 并行通信,传输原理:数据各个位同时传输。优点:
STM32G0低功耗介绍一、低功耗模式介绍1、STM32G0按照分类可以分为4种模式(1)sleep(sleep和low-power sleep)模式:功耗高,支持任意中断/事件唤醒(2)stop(stop0和stop1)模式:功耗较低,支持任意外部中断和RTC闹钟唤醒(3)standby模式:功耗更低,只支持RTC闹钟唤醒、WKUP唤醒、NRST引脚复位和IWDG复位(打开了LSI和LSE)(4
转载 2024-04-29 17:21:13
92阅读
STM32的通信接口STM32主要用的通信接口有USART、IIC、SPI、USB、CAN。这些通信接口的主要目的是将设备的数据传送到另一个设备,扩展硬件系统。 在串口通信中有着TTL、RS232、RS485等电平标准。其中TTL和RS485都为正逻辑,只有RS232为负电压表示1,正电压表示0.TTL:+3.3V或+5V表示1,0V表示0.RS232:-3V—— -15V表示1,+3V——+15
这片文章主要是讲解原子给的代码里面的串口中断的中断函数,前面是我个人的学习路径。关于stm32串口的学习,主要分为以下几个点 1.USART的功能和内部结构。 功能包括同步、异步模式、双工通信、半工通信等 内部结构,参考这张图片,去把各个部分了解清楚就差不多了。2.USART的相关寄存器,看一看有个映像就可以了,主要了解一下这些寄存器对应上面的图,设置哪一部分的就ok了。 3.USART的收发格式
  文章目录一、串口通信简介1.1 百度百科解释1.2 通信接口1.3 串口通信分类1.4 STM32串行通信的通信方式二、STM32串口通信2.1 功能引脚2.2 数据寄存器2.3 控制器2.4 小数波特率生成三、总结 一、串口通信简介 1.1 百度百科解释来源百度百科 串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并
STM32基础知识3-STM32串口USART1的使用方法和程序 通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半双工单线通信。 1、STM32固件库使用外围设备的主要思路 在STM32中,外围设备的配置思路比较固定。首先是使能相关的时钟,一方面是
转载 2024-09-12 20:32:36
55阅读
串口的使用中我们常用的就是串口的中断收数据,发数据。但除了普通的收发stm32F0系列的串口增加了很多新的功能。如果巧妙的把这些功能用起来就可以达到事半功倍的效果。把能交给硬件处理的就交给硬件可以节约大量的MCU时间用来做其他事情。也能大大调串口通信的可靠性。    功能一:串口多机通信stm32串口是支持多机通信的,多机通信也很好理解,就是把多个从机的RX连接到主机的TX,多
转载 8月前
54阅读
串口通信时看到的一篇很好文章,转发给需要的朋友。1、实验内容梳理 首先结合串口调试助手对实验进行说明,以便后续结合代码熟悉整个流程。整个实验其实就是通过串口调试助手向单片机发送数据,然后单片机将接收到的数据返回给上位机并加以显示。简单来串口调试助手说其实就是用于上位机和下位机通信用的一个桥梁软件,功能主要有两个这也是本实验的两个步骤:1.人工发送数据给单片机处理,即通过串口调试助手的下方窗口编辑
转载 2024-10-13 22:00:19
509阅读
DMA:直接储存区访问,DMA传输将数据从一个地址空间复制到另一个空间。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM何IO设备开辟一条直接传输数据的通道,从而可以提高CPU的效率。一般用到DMA,主要作用为CPU减负。 我们用STM32CubeMX来配置一下串口的DMA实现收发。 选择芯片: 根据自己的电路设计情况配置时钟,我用的外部晶振25
第一步 使用stm32cubeMX配置串口可以在NVIC里面设置串口的优先级,避免bug的出现。第二步 生成代码并修改串口打印重定向在usart.c里面添加/** * @brief 串口重定向 */#include <stdio.h>int fputc(int ch, FILE *f){ HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF); return ch;}在使用的地方要
原创 2021-06-08 14:41:03
3615阅读
串口通讯协议简介:串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的
项目场景:stm32H743使用串口MDA发送数据,减轻MCU负担问题描述通过stm32cubeMX配置串口3,使用DMA发送数据,生成工程后DMA发送数据没问题,但是发送的数据全部为0x00,并不是我发的数据,通过仿真查看发现直到DMA发送函数内部数组的数据都是正确的,但是发出来的数据就变成了0x00,经过各种查找,网上搜索终于发现问题。 参考文章: 1、没修改前串口3DMA发送的数据如下图:
  • 1
  • 2
  • 3
  • 4
  • 5