本章将实现的功能:     ① STM32F1通过串口和上位机对话;     ② STM32F1在收到上位机发过来的字符串后,原本地返回给上位机。 本章目录:     9.1 STM32串口简介     9.2 硬件设计     9.3 软件设计     9.4 下载验证
第三十五章 USB 虚拟串口(Slave)实验上一章我们向大家介绍了如何利用 NANO STM32F4 的 USB 接口来做一个 USB 读卡器,本章我们将利用 STM32F411 的 USB 来做一个虚拟串口(VCP)。本章分为如下几个部分:35.1 USB 虚拟串口简介35.2 硬件设计35.3 软件设计35.4 下载验证35.1 USB 虚拟串口简介USB 虚拟串口,简称 VCP,是 Vir
一、前言1、简介  回顾上一篇UART发送当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作。2、UART简介  嵌入式开发中,UART串口通信协议是我们常用的通信协议之一,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。3、准备工作  在UART详解中已经有了详细的说明,按照里面的
文章目录前言一、使用STM32CubeMX1. 安装固件库2. 工程设置二、USART串口通信1.UART函数库介绍2.线路连接3.代码编写4.测试结果5.软件调试三、总结四、参考资料 前言使用STM32CubeMX实现串口通信硬件:stm32f103c8t6 核心板软件:STM32CubeMX 6.3.0软件:keil5 mdk一、使用STM32CubeMX1. 安装固件库若点击Manage
STM32升级功能分为2部分,一部分是bootloader程序,另一部分是用户应用程序组成(以STM32F103C8为例来说明 )bootloader工程分析启动文件的复位部分; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __m
1、Cubemx 2、stm32Hal库 3、同步串口收发 4、阻塞式收发stm32串口配置过程1、创建工程,详情请看我的第一篇博文2、配置Sys3、查看原理图找到使用的串口所在的引脚4、配置串口工作方式5、生成工程,见上一篇链接链接:6、生成的usart初始化如图7、接下来就是配置主函数了,配置之前我要先讲解两个函数(1)发送函数(2)接收函数8、我的主函数实现的功能是轮询的进行接收,并且在接受
STM32F407 Bootloader Ymodem 协议实现   相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。        根据Ymodem协议,实现了一个STM32F407的Bootloader,该Bootloader能使用SecureCRT8中的Send Ymodem协议进行固
转载 2024-03-01 10:52:37
653阅读
官方固件库中的对应函数为:void SystemInit (void) { /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; /* Reset SW
转载 2024-09-19 07:15:07
93阅读
在最近的ctf比赛中,开始出现以stm32系列固件分析为代表的物联网安全类题目,由于这类问题涉及到嵌入式硬件、嵌入式系统等多方面的知识,未来出题、研究空间都非常广阔,这次就让我们借助题目一起来学习一下。由于考研失踪了很久,很多联系我的同学我也没能回复,希望大家原谅,之后一段时间我就正式回来啦。啥是stm32STM32是一种功能强大的32位的单片机,它基于低功耗的ARM内核,由于它采取的
 fat文件系统的所有外部接口都在ff.h中物理驱动器、逻辑驱动器一个物理驱动器就是一个真实的存储设备,例如一个硬盘、一个内存卡。逻辑驱动器就是一个虚拟概念,一个硬盘可以分成CDEF共4个盘,每个盘就是一个逻辑驱动器。在FAT源码中有个宏 _VOLUMES,这个宏被用于配置FAT源码支持多少个逻辑驱动器。具体要配置成多少,看业务需求。FAT源码中有个全局指针数组如上*FatFs,这个指针
前言在单片机方面,针对于通讯常用的协议之一modbus,这里将modbus协议和硬件之间的关系完全独立出来,硬件和协议之间的联系采用的是回调的方式进行一个关联。说明1、此协议可直接移植,并不需要关心硬件相关的。 2、modbus相关协议概念自行查找,本文只做代码的实现。代码宏定义(modbus_core_define)modbus_core_define.h此头文件定义枚举和回调以及相关的功具类#
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
前言硬件:单片机:stm32f072CB,sram大小16k。(其他单片机只要sram>8k即可通用)SPIFlash:W25Q128FV,16Mbyte,单次擦除最小4k。程序使用Keil编译器,C99标准。程序已经全部完成并测试通过,目前没出现明显问题。程序使用的FatFs库版本:R0.13b。下文所有内容仅保证在此版本可行。添加文件获取FatFs库(官网)将source文件夹全部复制到
转载 2024-05-10 18:59:12
427阅读
1 下载协议  1.1 JTAG协议    JTAG全称 joint test action group,边界扫描系统协议;是调试芯片的通用标准协议;  1.2 SWD协议    SWD全称 serial wire debug,串行调试协议;也是调试芯片的通用标准协议;2 SWJ-DP  SWJ-DP全称 serial wire/JTAG - debug port,串行和边界扫描系统调试端口;为s
转载 2024-08-14 21:38:14
543阅读
IAP:在线升级代码 ,通俗的讲就是通过USART,IIC,或者SPI,USB等等,方式,在程序中升级程序,一般用在远程升级,或者是在PCB板子都安装到模具之后还需要升级代码,这样我们就需要,通过IAP的方式来升级。软件代码托管码云地址:https://gitee.com/zyzp/stm32UartIAP开发环境:MDK-V5,stm32cubeMx,SecureCRT8硬件平台:stm32f1
多年前在使用STM32中的硬件SPI通讯过程中,发现所给的例程实际上是有问题的。最近我的学生跟同事总跟我反映:“SPI通讯他们调试速度总是上不去,芯片支持到25MHz,我们只能做到1M左右。” 今天台式SPI的时候,我将这个问题放上来说一下。 在STM32的SPI通讯过程中,非DMA模式下,每发送一个数据后,我们的代码是这样写的:void SPI1_Send_Byte(unsigned char
1.引言本文章基于stm32官方例程实现,详细代码可下载例程。在RT-thread系统上实现1588协议,网络驱动上需要做较多的修改。 2.代码修改 2.1驱动分析 当Accumulator register,溢出之后,会增加subsecond register一个步长,这个步长为constant value;每个时钟周期 Accumulator regis
先在本地创建文件夹以保存keil的工程同时在该目录下创建一下文件1.User(存放stm头文件配置文件终端文件,已经自己写的函数) 进入官方库\stsw-stm32054\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template,复制以下四个文件到User下。 main 主函数 stm32f10x_conf.h 包含外设
目录一. PCB画图生成BOM表网络表1. 建立PCB工程2. 右键工程,检查3. 导入原理图4. 执行变更,然后关闭5.进行元件布局二. 布线(自动布线)1. 准备工作2. 自动布线三. 覆铜四. 电气规则检查五、其它生成logoPCB图输出为Gerber光绘文件 一. PCB画图生成BOM表这是在原理图上生成 点击报告 点击左下角导出,将其保存 可以看到,生成的表格网络表点击“设计”→“工程
转载 2024-09-12 12:09:17
159阅读
文章首发于://forum.butian.net/share/169目录起因挖掘sboot_stm32tinyusbdfu_moded_control_xfer_cb 越界访问netd_xfer_cb 整数溢出导致堆溢出lufa数据入口RNDISEthernet 控制请求处理溢出CCID_Task 栈溢出IP_ProcessIPPacket 越界访问TeenyUSB数
  • 1
  • 2
  • 3
  • 4
  • 5