- 博客(13)
- 收藏
- 关注
原创 嵌入式RTOS多任务程序设计
通过本次实验,我深入了解了RTOS的基本概念和原理、RTOS是如何管理任务、资源和时间,以及如何保证实时性的。这让我对嵌入式系统有了更全面的理解。我学会了如何使用RTOS进行任务调度、资源管理和通信,理解了它们在RTOS中的重要性和作用,这对我未来的嵌入式开发工作非常有帮助。此外,我也认识到RTOS的可剥夺性和可裁剪性在实际应用中的重要性。这些特性使得RTOS能够适应不同的应用场景和硬件环境,并且能够保证实时性。最后,我也发现了自己在嵌入式开发方面的不足之处。
2023-11-27 21:36:26 149
原创 数字温度计
实时时钟的缩写是RTC,核心是晶振,晶振频率一般为32768 Hz。它为分频计数器提供精确的与低功耗的实基信号。它可以用于产生秒、分、时、日等信息。RTC的晶振又分为:外部晶振和内置晶振。RTC时间信息存储在后备寄存器中,在STM32中,通常采用一个32位计数器来计时,而不是用年月日时分秒的分组寄存器,因此在处理STM32的时间信息时,通常要求先处理时分秒时间,再处理年月日时间,以确保时间和日期值之间的一致性。
2023-11-25 18:05:33 111
原创 汉字点阵与OLED屏显
在Ubuntu下用C/C++(或python) 调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵字形字库(压缩包中的文件HZKf2424.hz)中对应字符的字形数据,将名字和学号叠加显示在此图片右下位置。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。
2023-11-19 21:56:32 81 1
原创 IIC协议读取温湿度数据
1.IIC介绍IIC总线是一种由NXP公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。2.ICC的基本功能只需要两条总线;没有严格的波特率要求,例如使用RS232,主设备生成总线时钟;所有组件之间都存在简单的主/从关系,连接到总线的每个设备均可通过唯一地址进行软件寻址;I²C是真正的多主设备总线,可提供仲裁和冲突检测;3.软件IIC和硬件IIC。
2023-11-15 19:17:28 179 1
原创 定时器&;PWM应用编程
通过本次实验,我们使用STM32F103系列的Tim2~Tim5中的一个定时器通道,将LED连接到相应的GPIO管脚上,实现了LED以2秒的频率周期性地亮-灭,采用定时器的PWM模式,通过配置定时器的参数和相关寄存器,实现LED了以呼吸灯方式渐亮渐灭。通过Keil虚拟示波器,我们可以观察PWM输出波形,以验证PWM的正确性;在实验前做了充分的准备,仔细阅读了相关的STM32定时器和PWM模式的文档,理解其寄存器的配置方法和中断处理函数的编写并且熟悉了Keil虚拟示波器的使用方法,以便观察波形输出。
2023-11-04 16:59:36 64 1
原创 STM32—基于中断/DMA方式的串口通信
通过本次实验,我学会了选择合适的串口通信协议,即根据应用需求选择合适的串口通信协议,如UART、USART、SPI、I2C等,每种协议都有其特点和适用场景,需要根据具体情况进行选择,复习了一些基础操作,如配置串口通信参数:在实验中,需要正确配置串口的波特率、数据位、停止位、校验位等通信参数、中断或DMA配置:根据实验需求,选择中断方式或DMA方式进行数据的接收和发送、数据处理和拆包:在接收数据时,根据通信协议和数据格式进行正确的数据处理和拆包。
2023-11-02 17:08:03 276 1
原创 STM32串口通信入门
本次实验我成功地实现了STM32微控制器的串口通信功能。在实验过程中,我配置了STM32的串口模块:我们通过设置波特率、数据位、停止位和校验位等参数,将串口模块配置为与计算机兼容的通信参数及编写STM32的程序:通过编写适当的代码,我实现了STM32接收和发送数据的功能。我使用了串口中断和DMA等技术,提高了数据传输的效率。我编写了相应的串口通信程序,与STM32进行数据通信。我使用了合适的串口参数和通信协议,在计算机上实现了与STM32的数据交互。
2023-11-01 17:53:25 45 1
原创 基于HAL库的LED流水灯
此次试验学习如何配置STM32的GPIO引脚以控制外部设备,这是嵌入式开发的基本步骤。理解如何使用STM32的HAL库函数,简化了底层硬件控制,减少了代码的复杂性。通过创建项目、编写代码、调试和烧录固件,学习了嵌入式软件开发的整个流程。通过诊断和解决LED灯工作不正常的问题,提高了调试技能。学会如何添加延时以控制LED流水灯的速度,重要的时间管理技能。了解了硬件与软件之间的交互,如何在代码中控制外部硬件设备。通过实际项目,将学到的理论知识应用到实际情境,深化了对嵌入式系统的理解。
2023-10-24 18:28:54 46
原创 LED流水灯实验2
此次试验使用STM32微控制器开发板,使LED连接到正确的GPIO引脚。完成了使用循环来实现LED流水灯效果,逐个点亮LED并延时一段时间,再熄灭LED。移动到下一个LED,重复上述步骤。这个流程循环进行,创建了LED流水灯效果,在实验中,成功实现了基于STM32固件库的LED流水灯效果。了解了初始化系统和GPIO配置的基本步骤。体验了如何使用循环来控制LED的点亮和熄灭,创建了视觉效果, 这个实验有助于初学者熟悉STM32的基本开发流程,包括硬件准备、工程创建、代码编写、编译、烧录和调试。
2023-10-17 21:52:49 228 1
原创 GCC的故事及C程序地址分配
通过本次作业内容,我学习并掌握了可执行程序的编译和组装过程,了解到一个具体的编译过程包含了哪些方面,通过对Gcc的了解和实践,学会了通过这个工具生成库及使用库,进一步加深了我对Gcc工具的了解程度,明白了gcc编译工具集中各软件的用途及ELF反汇编的知识。复习了全局变量、全局常量等概念,通过Ubuntu系统和STM32的各个验证对比分析出两者中各信息的区别与联系,加深了我对STM32F10x的存储器地址映射的理解。
2023-10-06 20:08:34 148 1
原创 STM32F103的流水灯点亮(寄存器地址操作)
程序设计中最为重要的是GPIO端口的配置,GPIO端口配置完成之后,我们就能控制LED点亮点灭了,但是如果我们需要实现精确延时1s后LED灯闪烁,我们就需要添加延时函数,这部分系统中断,在这里我调用的是正点原子写好的延时函数。
2023-10-03 17:23:39 166 1
原创 STM32/51单片机编程入门(LED的点亮)
通过本次实验,我进一步加深了使用Proteus创建工程及原理图的技巧,熟悉了Keil软件的编译原理及方式,通过阅读ARM、STM32技术手册,了解到了STM32F103系列芯片的地址映射和寄存器映射原理及GPIO端口的初始化设置的一般步骤,还知道了嵌入式C程序对内存和对外部设备操作的同异之处及51单片机和STM32LED点灯编程中的区别与联系。在代码方面,在我已有的大一大二学习基础上,进一步学习了嵌入式C程序中的两个常用关键字,即register、volatile,了解了这两个关键字在嵌入式C程序中的作用。
2023-09-24 13:47:45 248 1
原创 虚拟机ubuntu中gcc及Makefile的使用
通过gcc这种刚与我们见面编译工具的使用,我深刻的理解到了如何从C语言源程序编译为可执行的文件,理解到了gcc、makefile直接编译程序的特点及与Windows编译的不同之处,提升了我对虚拟机中ubuntu工具的掌握与应用,这些实验将进一步使我们对整个C语言的熟悉程度有所提高。
2023-09-15 22:21:22 600 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人