logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

嵌入式学习(44)-基于STM32F407Hal库的Modbus Master主机程序。

本文介绍了基于STM32F407HAL库开发的裸机Modbus主机程序实现方案。针对FreeModbus移植复杂的问题,作者设计了简化的读写机制:读数据采用发送-超时等待-重发处理流程,写数据采用发送-应答确认机制。文章提供了完整的03H读保持寄存器和06H写单个寄存器功能代码实现,包括数据打包、CRC校验及RS485通信控制。该方案通过标志位管理通信状态,配合定时器实现超时处理,适用于嵌入式系统

文章图片
#学习
嵌入式学习(45)-基于STM32F407Hal库的Modbus Slave从机程序

摘要:本文介绍了基于STM32F407的Modbus从机实现方案,重点解析了功能码03(读取寄存器)和06(写入单个寄存器)的处理流程。通过HAL库实现数据包解析、寄存器操作和CRC校验,完成从机对主机的响应。代码展示了如何获取寄存器地址、处理数据读写,并正确打包返回数据帧,为嵌入式设备Modbus通信提供了可参考的实现方法。

文章图片
#学习#stm32#嵌入式硬件
嵌入式学习(42)-基于STM32F407Hal库的同一个定时器不同通道脉冲计数和输入捕获计数

本文介绍了在STM32F407上使用通用定时器2实现计数功能的方法。由于定时器的不同通道共享同一个计数器,因此只能将一个通道配置为脉冲计数模式,其他通道采用捕获计数模式。文中详细展示了定时器初始化、GPIO配置、从模式设置(外部触发模式1)以及输入捕获通道配置的代码实现。重点说明了通道1脉冲计数和通道2捕获计数的配置过程,并指出通道2中断对通道1功能的影响。最后提供了完整的源码下载链接,可供开发者

文章图片
#学习#stm32#嵌入式硬件
嵌入式学习(41)-基于STM32F407Hal库的定时器输入捕获实现计数

使用STM32F407实现计数的功能,其实本身例程里面有脉冲计数,这个功能就很好;但是目前一个定时器只能实现一路脉冲计数,不可以多路,这就造成如果有多个脉冲计数功能就会占用多个定时器。所以考虑使用定时器的输入捕获功能,可以实现同一个双通道或多通道的脉冲计数。这种方式也有缺点就是会一直进中断,所以这种计数最好是频率不高大约在1K以下的计数。

#学习#stm32#嵌入式硬件
嵌入式学习(39)-基于STM32的GPIO电平反转检测

项目中需要用的IO口的检测,主要是脉冲触发,所以需要去除由于扫描频率太快导致的二次捕捉误判,需要进行反转检测。

文章图片
#学习#stm32#嵌入式硬件
嵌入式学习(37)-STM32串口发送中断的实现

项目中需要用到发送中断,所以了解了发送中断的一些知识。

#学习#stm32#嵌入式硬件
嵌入式学习(30)-STM32F103 WS2812驱动

背景:之前在STM32F407的平台是实现了WS2812的驱动,今天移植到STM32F103的平台发现WS2812无法驱动点亮。最终找到了原因:是GPIO模拟时序的原因。

文章图片
#学习#stm32#嵌入式硬件
嵌入式学习(24)-STM32F407 Hal库IAP升级

第二部分代码可以使用第一部分代码 IAP功能烧入,也可以和第一部分代码一起 烧入,以后需要程序更新 时 再通过第一部分 IAP代码更新。我们将第一个项目代码称之为Bootloader程序,第二个项目代码称之为 APP程序,他们存放在 STM32F407 FLASH的不同地址范围,一般从最低地址区开始存放 Bootloader紧跟其后的就是 APP程序(注意,如果 FLASH容量足够,是可以设计很多

文章图片
#学习#stm32#嵌入式硬件
嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(四)

首先新建两个用户文件,将Demo例程中main函数中的部分测试代码复制到User.c里面,在头文件里面定义一些函数,编写相关的时序测试代码。第三步在工程的应用层添加C源文件和头文件。粘贴替换目标文件中的配置文件。测试了浮点数和字符串的读写。

文章图片
#学习#stm32#嵌入式硬件
嵌入式学习(7)-RTC时钟DS3231

DS3231是一款高精度I2C实时时钟(RTC)器件,具有集成的温度补偿晶体振荡器(TCXO)。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。少于31天的月份,可自动调整月末日期,包括闰年补偿。时钟的工作格式为24小时或带AM/PM指示的12小时格式。DS3231提供两个可编程日

文章图片
#学习#实时音视频
    共 39 条
  • 1
  • 2
  • 3
  • 4
  • 请选择