- 博客(14)
- 收藏
- 关注
原创 I2C协议和温湿度采集
例如,在发送数据时,硬件I2C模块会在SCL的上升沿将数据位稳定地放置在SDA线上,接收数据时则在SCL的下降沿读取SDA线上的数据。对硬件I2C(STM32内置I2C外设,由硬件自动处理时序,稳定高效)和软件I2C(通过GPIO模拟I2C时序,灵活性高但依赖CPU时序控制)有了清晰区分,本次实验用硬件I2C实现AHT20通信,体验到其在时序准确性和开发效率上的优势。灵活性相对较差:硬件I2C的引脚功能通常是固定的,在某些情况下,如果硬件I2C引脚被占用或者需要进行特殊的引脚复用,就会受到限制。
2025-11-13 12:02:14
669
原创 作业:pwm和定时器
任务:之前作业中的延时功能都是通过循环、delay/Hal_delay函数等实现,本次作业通过定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务。同时设置一个2秒的定时器,让LED等周期性地闪烁,实现一个多任务并发运行的功能。使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。
2025-11-13 12:01:34
353
原创 作业串口通信
深入研习串口协议、RS - 232 标准及电平差异(如 RS232 与 TTL 电平),明晰数据格式、传输速率与校验方式等串口通信底层原理,理解 RS - 232 电气与机械特性,知晓硬件连接时电平转换需求,如借助“USB/TTL 转 232”(以 CH340 芯片模块为例)实现 STM32 串口与 RS - 232 设备对接,为实践筑牢根基。CH340芯片将接收到的USB数据进行处理和缓存,然后按照串口通信的协议,将数据转换为TTL电平信号,并通过TXD引脚发送到外部的串口设备.
2025-11-12 18:09:07
273
原创 嵌入式作业:基于HAL库和中断的LED流水灯
中断机制如同智能调度员,能实时响应外部事件,使系统更灵活高效实验中,HAL库极大简化了中断配置和编程,如GPIO中断设置和事件处理,使编程过程像搭建积木般简单。HAL库的硬件抽象层优势提高了代码的可移植性,使代码在不同STM32芯片上几乎无需修改即可运行,节省了时间和精力最终,看到LED流水灯根据外部开关状态准确工作,我深感自豪,这不仅验证了电路连通,更是我学习和实践成果的展示。新建工程后,打开我们新建的工程,进入存有中断函数的文件,找到中断函数。进入有中断函数的头文件中,将新编写的函数加进去。
2025-11-12 17:28:15
539
原创 多任务程序设计
学习嵌入式实时操作系统(RTOS),以uc/OS-III为例,将其移植到stm32F103上,构建至少3个任务(task):其中两个task分别以1s和3s周期对LED等进行点亮-熄灭的控制;欢迎来到RTOS多任务环境!任务堆栈:上下文切换的时候用来保存任务的工作环境,就是STM32的内部寄存器值。任务堆栈是任务的重要部分,堆栈是在RAM中按照“先进先出(FIFO)”的原则组织的一块连续的存储空间。为了满足任务切换和响应中断时保存CPU寄存器中的内容及任务调用其它函数时的需要,每个任务都应该有自己的堆栈。
2024-12-25 19:13:19
217
原创 温湿度采集和oled展示
通过本次实验,了解到了I2C总线协议的具体内容,以及AHT20温湿度传感器的使用,刚开始不太清楚I2C总线协议,通过查询资料和实际操作慢慢有了自己的理解,以及虽然刚开始不了解AHT20代码模块所表达的含义,但通过查询学长学姐的博客,最终正确使用了代码模块,读取了温度和湿度的测量值,总的来说还是感觉到有学到东西的,继续加油。1. 学习I2C总线通信协议,使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。
2024-12-15 23:19:06
859
原创 湿温度采集和oled展示
n\n注意IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPI\n\n2、I2C 协议的物理层和协议层\n(1)物理层\nI2C是一个支持设备的总线。\nI2C 通讯设备常用连接方式\n\n\n(2)协议层\nI2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。\n应答信号接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。\n\n这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
2024-12-15 23:10:45
663
原创 定时器与pwm
1. 之前作业中的延时功能都是通过循环、delay/Hal_delay函数等实现,本次作业通过定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务。同时设置一个2秒的定时器,让LED等周期性地闪烁,实现一个多任务并发运行的功能。2. 使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。
2024-12-11 18:37:13
392
原创 stm32串口通信
二. 串口传输文件的实验。将两台笔记本电脑,借助 USB/TTL转RS232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(如sscom,带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑。2、如果只接TX--RX, RX--TX 这样两根线,不接电源线或者不接GND地线,文件传输是否还能正常工作?首先我们需要两台电脑,两台电脑都需要安装好串口助手用于发送和接收文件。1、预估文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。
2024-12-09 22:57:32
678
原创 基于hal库和中断的led流水灯
2、用stm32F103核心板的GPIOA端某一管脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED流水灯工作;一. 了解并掌握STM32中断原理,HAL库函数开发方法。1、重做上一个LED流水灯作业,即用GPIO端口完成3只LED红绿灯的周期闪烁。设置clock configuration。设置project manger。接低电平时,LED流水灯停止工作。打开stm32创建新任务。
2024-11-30 18:57:44
274
原创 基于寄存器地址的led流水灯
3)STM32最小系统核心板子出厂时已经焊接好了1个led灯(标注了PC13处),一般可通过此灯的点亮让编程者验证自己烧录的代码是否正常运行了。实验任务1:以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只_(或更多)红绿蓝LED 搭建电路,使用GPIOA/GPIOB/GPIOC端口控制LED灯,轮流闪烁,间隔时长1秒。实验任务2:在实验1的基础上,改用标准外设库方式使用某个端口GPIOx端口管脚控制几个LED灯,轮流闪烁,间隔时长1秒。
2024-11-24 22:20:19
348
原创 Ubuntu完成任务
请修改系统参数,选择国内镜像软件源仓库,以提高软件安装速度(注意Ubuntu不同版本的对应不同名称,如Ubuntu22.04是jammy,Ubuntu20.04是focal,Ubuntu18.04是bionic,Ubuntu16.04是xenial)。心得:通过本次实验,对于Ubuntu点了解得到了更多的增强,增加了实践动手能力,也明白了遇到问题时可以上博客查找资料寻找帮助,总的来说,这次实验对于我对Ubuntu的实践能力是有了很多大的提升,收益良多。
2024-11-14 00:22:16
275
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅