- 博客(16)
- 收藏
- 关注
原创 嵌入式RTOS多任务程序设计
1.1 特点:实时性:uc/OS-III设计用于支持实时系统应用。多任务支持:支持多任务处理,可以同时执行多个任务。内核对象:提供了诸如任务、信号量、消息队列等内核对象。可裁剪性:可以根据应用需求选择性地裁剪功能,以减小内存占用。1.2 内核对象:任务(Task):用于执行实际的工作。信号量(Semaphore):用于任务间的同步和互斥。消息队列(Message Queue):任务之间通过消息进行通信。事件标志组(Event Flag Group):用于任务同步。
2023-11-26 20:00:48
1012
1
原创 STM32实现数字温度计
实验首先涉及到硬件的连接,包括选择合适的温度传感器并将其连接到STM32微控制器。在此过程中,我学到了如何正确选择传感器,并理解了不同传感器的工作原理和特性STM32CubeMX和HAL库的使用提供了便捷的配置和初始化工具。通过图形界面进行引脚分配、时钟配置等操作,极大地简化了初始化过程,减少了出错的可能性。大多数数字温度传感器使用I2C或SPI等通信协议与微控制器进行数据交互。在实验中,我学到了如何在STM32中配置和使用这些通信接口,以确保可靠的数据传输。
2023-11-19 22:48:44
1364
1
原创 使用OLED屏显示字符
本次实验的内容为使用OLED屏显示字符在嵌入式系统中,OLED屏幕作为一种新型的显示技术,具有自发光、高对比度、快速响应等特点。本次实验的目的是通过编程控制OLED屏,实现字符的显示,为深入了解嵌入式系统图形显示技术打下基础。通过查阅手册和编写实际的程序,深入理解了OLED屏的工作原理,包括通信协议、控制命令、显示像素等方面的知识。学到了如何在嵌入式系统中进行硬件编程,包括使用特定的库函数和调用底层接口来控制OLED屏的显示。
2023-11-14 12:47:24
4811
1
原创 电脑间串口传输文件
波特率计算公式:以波特率115200为例波特率115200 = 115200 (位/秒)。如果没有校验位,就应该除以 10,得到的是每秒字节数:波特率115200 = 115200 (位/秒) = 11520 (字节/秒)。再除以 1024,就是每秒 KB 数:波特率115200 = 115200 (位/秒) = 11.25 (KB/秒)。如果有一位奇偶校验位,就应该除以 11,得到的是每秒字节数。最后得出:波特率115200 = 115200 (位/秒) = 10.27 (KB/秒)。
2023-11-14 12:34:07
266
1
原创 Ubuntu下调用opencv库编程显示一张图片并显示字符
此次实验的内容为Ubuntu下调用opencv库编程显示一张图片并显示字符。通过过这个实验,我学到了如何在Ubuntu下使用OpenCV库进行基本的图像处理操作。OpenCV提供了强大的工具和函数来处理图像,包括加载、保存、修改和渲染文本。这对于图像处理和计算机视觉应用非常有用。此外,这个实验也强调了编程中的一些重要概念,如图像数据结构、坐标系转换和图像渲染。
2023-11-14 12:29:50
126
1
原创 STM32基于IIC协议读取温湿度数据
I2C"是一种常见的串行通信协议,用于在不同的集成电路(IC)之间传输数据。有两种主要的I2C实现方式,即"软件I2C"和"硬件I2C”,它们在通信方式和实现方式上有所不同。此次实验内容为通过STM32微控制器使用I2C协议读取与AHT20温湿度传感器连接的温度和湿度数据。在连接硬件时,务必小心,确保正确接线,防止损坏设备。在代码编写中,注意I2C通信的初始化和配置,以确保通信的顺利进行。根据AHT20传感器的数据手册,正确解析温湿度数据。
2023-11-07 20:07:20
329
原创 STM32使用定时器&PWM应用编程
此次实验的内容为定时器&PWM应用编程。熟悉了STM32的开发环境,包括CubeMX和HAL库。这些工具为STM32的编程提供了便捷的方式,能够轻松配置定时器和PWM参数。学习了如何配置PWM输出,包括设置占空比、频率和极性。以及如何编写中断服务程序,以响应定时器中断或PWM事件。通过这次实验,我不仅深入理解了STM32定时器和PWM的原理和应用,还提高了嵌入式系统编程的能力。这种经验对于嵌入式系统开发、物联网应用和自动控制系统等领域都非常有帮助。
2023-11-03 15:14:48
153
原创 基于中断/DMA方式的串口通信
此次实验的内容为基于中断/DMA方式的串口通信。基于中断/DMA方式的串口通信实验是深入学习嵌入式系统通信原理与技术的重要环节。掌握了配置中断和DMA的基本步骤,包括寄存器设置、中断优先级的配置以及DMA通道的初始化等。中断方式在数据传输过程中具有更高的灵活性,而DMA方式则可以减轻CPU负担,提高传输效率。我学会了根据具体应用场景选择合适的通信方式。通过这个实验,我不仅提高了自己在嵌入式系统通信方面的技能,而且培养了解决问题和持续学习的能力。我相信这些经验和知识将对我的未来学习产生积极的影响。
2023-10-29 18:03:26
190
1
原创 STM32串口通信入门
在实验开始之前,需要深入理解串口通信的基本原理。了解了不同的串口协议、波特率、数据位、停止位等概念。STM32微控制器的串口模块,包括USART1、USART2等。了解这些模块的特性和寄存器设置对于正确配置串口通信至关重要。通过这个入门实验,我获得了对STM32串口通信的基本理解,并掌握了一些实用的技能。串口通信是嵌入式开发中常用的通信方式,我相信这个基础将在将来的项目中发挥重要作用。
2023-10-25 16:04:07
94
1
原创 基于STM32HAL库实现LED流水灯
在第102行处的While循环中进行输入在进行实验之前,首先需要深入了解HAL库的文档和功能。HAL库提供了许多用于配置和操作硬件的函数,包括GPIO、定时器、中断等。熟练掌握这些函数是成功实现流水灯的关键。在实验开始之前,确保正确连接LED灯到微控制器的GPIO引脚。同时,了解HAL库中的引脚配置和初始化函数,以确保正确配置LED引脚。HAL库的使用相比之下还是比较简单快捷的。
2023-10-22 21:43:38
429
1
原创 基于STM32标准外设库的LED流水灯
此次STM32学习的主要内容为基于STM32标准外设库的LED流水灯。在学习LED流水灯项目中,我深入了解了STM32标准外设库的用法。通过库函数的调用,可以方便地配置和控制MCU的外设,如GPIO端口和定时器。了解外设库的使用可以提高代码编写效率和可读性。学习基于STM32标准外设库的LED流水灯项目是一个很好的入门项目,有助于加深对STM32 MCU外设和编程的理解。通过实践,不仅提高了代码编写和调试的技能,还培养了解决问题和创新的能力。
2023-10-13 16:34:27
275
原创 STM32F103的流水灯点亮版本1(寄存器地址操作)
这是我第一次进行有关STM32的比较全面的编程。在编程过程中还有着不小的困难。在学习之前就要了解STM32的芯片系列,引脚功能、外设和时钟等功能。了解如何设置开发环境,选择合适的开发工具如(Keil MDK或STM32CubeIDE)、如何创建和配置项目,以及如何下载和调试代码。烧录工具也有着不熟悉的问题。在串口以及跳线上还不熟悉。总体来说,在STM32上还有着较大的困难,还要继续学习。
2023-09-26 22:07:06
281
原创 全局常量、全局变量、局部变量、静态变量、堆、栈等,在Ubuntu(x86)系统和STM32(Keil)中的理解
在这次的学习中,学习了全局常量、全局变量、局部变量、静态变量、堆、栈等,在Ubuntu(x86)系统和STM32(Keil)中的相同点以及不同点。对ARM Cortex-M/stm32F10x的存储器地址映射的理解。Ubuntu和Keil中堆,栈的差别还是较大的。ARM Cortex-M和stm32F10x单片机的存储器地址映射决定了各种存储器和寄存器如何在处理器地址空间中分配和访问。在地址有关的知识还是较为困难的,需要继续的学习下去。
2023-09-26 21:23:12
1027
原创 gcc生成静态库和动态库、gcc背后的故事
此次学习了gcc生成静态库和动态库以及gcc背后的故事。在Ubuntu中,静态库以及动态库都是特别有用的。可以在适当的位置之中大大增加效率。静态库的文件大小要比动态库的文件大小小得多。动态库和静态库同时同名存在时会优先使用动态库,程序运行时,是到/usr/lib和/lib等目录中查找需要的动态库文件,而此时的动态库位于 /test1目录下,将文件 libmyhello.so 复制到目录/usr/lib中即可。
2023-09-26 20:59:33
210
原创 STM32/51单片机编程入门-点亮LED
这是我第一次进行有关STM32的编程。在编程过程中还有着不小的困难。在学习之前就要了解STM32的芯片系列,引脚功能、外设和时钟等功能。了解如何设置开发环境,选择合适的开发工具如(Keil MDK或STM32CubeIDE)、如何创建和配置项目,以及如何下载和调试代码。总体来说,在STM32上还有着较大的困难,还要继续学习。
2023-09-19 13:25:09
420
原创 ubuntu系统下使用gcc编译方法和Makefile编译方法编写C语言程序题
以上就是此次实验学习的所有认识了。Linux系统与以前所学的C语言以及C++都还有这不小的差距。在此次学习中,gcc的命令方式还是有一些不太简单,需要明确调用以及主要软件的主次关系。Makefile的文件必须要用大写的M。
2023-09-12 19:01:57
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人