- 博客(8)
- 收藏
- 关注
原创 FlashRom
实验结果1.所有写入的数据均被正确读取,验证了Flash的可靠性。2.通过记录时间,计算出平均写入和读取速率。3.在写入64KB数据后,继续写入数据,如果微控制器出现错误或无法启动,说明Flash容量未超过64KB。心得体会通过实际操作,我对Flash的物理特性和操作有了更深入的理解。并且实际操作STM32F103C8T6,加深了对微控制器硬件特性的认识。我也在实验过程中遇到了很多问题,如写入失败、数据校验错误等,这些都锻炼了解决问题的能力。
2024-12-29 00:45:28
994
原创 多任务程序设计
RTOS实时操作系统:RTOS是专为嵌入式系统设计的操作系统,它能够管理多个任务、分配系统资源,并确保任务的实时性。它在汽车、飞机、工业机器人、医疗设备等对实时性要求极高的领域中得到广泛应用。uc/OS-III操作系统:uc/OS-III是一个可预占的、实时操作系统,具有丰富的功能和良好的可移植性。它提供了任务管理、同步、通信和内存管理等核心服务。
2024-12-24 13:48:22
1031
原创 温湿度采集与OLED显示
理解I2C协议:通过本次实验,我对I2C总线通信协议有了更深入的理解。I2C协议是一种同步串行通信协议,通常用于连接低速外围设备(如传感器、EEPROM等)到微控制器。I2C总线的特点是只需要两条线:数据线(SDA)和时钟线(SCL)。这种简洁的连接方式使得多个设备可以共享同一总线,减少了引脚的使用。硬件与软件I2C的选择:在实验中,我使用了STM32F103的硬件I2C模块来实现与AHT20温湿度传感器的通信。
2024-12-15 23:12:10
2002
原创 定时器与PWM
时间精度高: 定时器可以提供精确的时间控制,确保任务按预定周期执行。CPU利用率高: 在非定时器溢出期间,CPU可以处理其他任务,提高系统效率。而不使用定时器的方法(如循环计数法或操作系统调度)虽然也能实现多任务,但可能存在以下问题:时间精度低: 循环计数法依赖于主循环的执行速度,可能导致时间精度不高。系统复杂度高: 使用操作系统调度需要额外的配置和调试,增加了系统的复杂度。因此,定时器是实现多任务并发运行的一种有效且高效的方法。
2024-12-11 22:06:49
2086
原创 STM32串口通信
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是一种通用的同步和异步收发器。它可以根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。通过本次实验,我对串口协议和RS-232标准有了更深入的理解。串口通信作为一种基本的设备间通信方式,其简单性和便捷性使其在许多应用场景中仍然非常有用。
2024-12-09 22:36:25
2102
原创 基于HAL库和中断的LED流水灯
从点击“GENERATE CODE”后创建的keil文件中打开“Application/User/Core”中的“main.c”文件,函数中的while循环函数,在while(1)后编写代码(下图位置处)(1) 首先,用STM32CubeMX建立一个项目,在搜索栏里面搜索开发板的芯片类型(STM32F103C8T6)点击上方“Project Manager” 的第一个栏里面,(注意:项目名字和路径不能有汉字)(2)在新的页面,分别在PA1,PA3,PA5点击GPIO_Output。
2024-12-01 22:23:00
382
原创 基于寄存器地址&标准外设库的LED流水灯
本篇文章主要介绍了STM32的一些基础知识,包括基本的开发步骤以及如何熟悉和使用Keil软件。在实验中,我们通过两种方式(寄存器方式和标准库方式)进行了点亮流水灯的操作,帮助我们加深了对STM32开发过程的理解。通过实际操作,我发现寄存器方式虽然能提供更高的执行效率,但由于需要直接操作硬件寄存器,开发难度较大,且要求开发者对硬件的工作原理有深入的了解,因此在实际开发中,更多人选择使用标准库方式。标准库方式通过封装硬件细节,简化了开发过程,虽然执行效率略低,但代码更易于理解和维护,适合大部分初学者。
2024-11-20 23:36:56
1057
原创 在ubuntu20.04系统中用C语言编写程序并用gcc命令、Makefile等方式编译程序
1.创建子程序文件打开vim,并创建一个子程序文件。打开终端,输入以下命令。
2024-11-15 01:04:43
938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅