自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 基于HAL库移植uC/OS-III进行多项目同时工作

UCOSIII是Micrium公司开发的实时操作系统(RTOS),它具有可裁剪、可剥夺型特性,没有任务数限制,并提供了实时操作系统所需的各种功能,如资源管理、同步和任务通信等。UCOSIII采用C和汇编语言编写,其中大部分代码都是用C语言编写的,只有与处理器密切相关的部分才使用汇编语言。它具有简洁的结构和较强的可读性,非常适合初学者、嵌入式系统开发人员和爱好者学习。任务是指简单的程序,它们是实际执行工作的实体。在单CPU系统中,任何时刻只能执行一个任务。

2023-11-26 13:42:36 89 1

原创 基于STM32RTC内部时钟模式的时间显示

RTC(Real Time Clock)实时时钟是一种独立的定时器,它为系统提供了基本的时钟和日历功能。RTC位于系统的后备区域,这意味着在系统复位时,其数据不会清零。此外,即使在电源VDD(2.0-3.6V)断开的情况下,RTC仍可以通过备份电源VBAT(1.8~3.6V)供电,继续运行。RTC的核心是一个32位的可编程计数器,它可以对应到Unix时间戳的秒计数器。此外,还有一个20位的可编程预分频器,可以适配不同频率的输入时钟。

2023-11-20 20:14:34 1673 1

原创 两台PC端的串口传输与接收

通过本文的实验和探索,我深刻体会到串口通信的实用性和便捷性。通过简单的设备和软件,我们就能实现两台电脑之间的快速文件传输,这在实际应用中非常有价值。此外,我也观察到波特率对传输时间的影响。在一定范围内,提高波特率可以显著缩短传输时间,但当波特率超过一定范围后,其对传输时间的影响会显著减小。这一现象让我对串口通信有了更深入的理解,也让我认识到在选择波特率时需要考虑到实际情况和需求。此外,通过实验,我还发现传输速度和文件大小的关系。对于较小的文件,传输速度相对较快,而对于较大的文件,传输时间会相对较长。

2023-11-18 22:37:15 384 1

原创 基于SPI的OLED字幕显示

SPI,全称为Serial Peripheral Interface,是由Motorola公司开发的一种通用数据总线。它使用四根通信线进行数据传输:SCK(Serial Clock,串行时钟线)、MOSI(Master Output Slave Input,主设备输出从设备输入线)、MISO(Master Input Slave Output,主设备输入从设备输出线)以及SS(Slave Select,从设备选择线)。这些线的作用分别是:SCK:这是主设备发送的时钟信号,用于同步所有设备的数据传输。

2023-11-18 14:44:18 103 1

原创 Ubuntu下利用opencv库编程显示图片以及插入姓名学号

在实验过程中,我掌握了如何从字库文件中读取点阵汉字的字模数据,并将其存储在内存中以供后续使用。通过编写C++函数,我能够获取每个汉字的点阵或轮廓信息,为后续的处理和显示提供了便利。在显示图片和文字方面,我利用OpenCV库的函数和类来加载和显示图片,并使用cv::imread()函数读取图片文件,再使用cv::imshow()函数将其显示在屏幕上。此外,我还学习了如何使用cv::putText()函数在图片上添加文字,并可以指定字体、大小、位置等参数。

2023-11-15 22:09:23 144

原创 STM32HAL库方式实现温湿度传感采集

I2C,全名Inter IC Bus,是一种由Philips公司开发的通用数据总线。它只需要两根通信线,即SCL(Serial Clock)和SDA(Serial Data),实现同步半双工通信方式,并支持数据应答机制。这种总线可以支持一个主设备和多个从设备的连接方式,也可以多主多从。这种通信方式被广泛应用于各种电子设备中,例如传感器、LED灯、显示器等,它的优点在于高效、可靠、易于实现、并且方便拓展。AHT20产品是基于I2C通信协议的温湿度传感器。

2023-11-08 16:17:34 266 1

原创 基于STM32标准库的定时闪灭以及PWM呼吸灯

TIM(Timer)定时器是一种用于计数和定时的高精度硬件设备。它内部包含16位计数器、预分频器和自动重装寄存器的时基单元,可以实现对输入时钟的精确计数。当计数值达到设定值时,定时器会触发中断,以便执行相应的操作。这种定时器具有高精度、长定时时间的优点,因此在许多嵌入式系统中得到广泛应用。根据复杂度和应用场景的不同,TIM定时器分为高级定时器、通用定时器和基本定时器三种类型。

2023-11-02 22:32:27 509

原创 HAL库基于中断与DMA的串口可控通信

中断串口通信是一种基于中断机制的数据传输方式。在中断串口通信中,当有数据要传输时,计算机通过产生一个中断信号来通知 CPU,CPU暂停当前任务并执行中断服务程序来处理传输数据的操作。中断服务程序会读取或写入数据,并执行相应的操作。这种方式在传输数据时具有较高的针对性和可控性,可以实现高度灵活的数据处理。在中断串口通信中,串口控制器提供了中断线,当有数据需要传输时,串口控制器产生一个中断请求,将数据送入接收或发送缓冲区。CPU在接收到中断请求后,暂停当前任务并跳转到中断服务程序进行数据的读取或写入处理。

2023-11-01 17:22:00 58 1

原创 基于STM32标准库的USART串口通信

串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力。

2023-10-25 17:24:50 593 1

原创 利用HAL库实现自动流水灯以及手动控制流水灯

HAL 库(Hardware Abstraction Layer,硬件抽象层)和标准库(Standard Peripheral Library,标准外设库,又称为 SPL)都是 STM32 微控制器的固件库。它们的主要区别在于结构和抽象级别。HAL 库: HAL 库是 STMicroelectronics(ST)提供的较新的库。它提供了一套统一的 API,用于访问 STM32 系列微控制器的外设。HAL 库的目的是简化固件开发,让开发者更加关注应用层逻辑,而无需深入了解底层硬件。

2023-10-19 23:10:32 216 1

原创 基于STM32标准库函数的LED流水灯实验

我们首先打开keil MDK,点击“NEW PROJECT"命名好工程名字,文件路径。(建议工程名字使用英语)。完成后,选择STM32F103C8T6。随后弹出来的这个界面不用管,直接取消掉。这个是用它自带的library添加所需库函数。但是我试了很多次发现文件总是缺少一些,所以就自己手动添加了。与寄存器编程方式相比, 库函数更加具有逻辑性与模块性。

2023-10-11 16:15:36 1661

原创 利用STM2与Ubuntu验证C内存分配问题

在STM32微控制器中,堆栈区是用来存储程序执行期间的变量、函数调用信息和局部数据的一块内存区域。它位于RAM(Random Access Memory,随机存取存储器)区域中。堆栈区的主要作用是跟踪函数的调用和返回过程,并存储函数的局部变量。当程序执行函数调用时,会将当前函数的返回地址、局部变量和其他相关信息压入堆栈中。函数执行完毕后,这些数据将会从堆栈中弹出,恢复到调用函数的状态。在STM32微控制器中,堆栈区的大小和位置由编译器和链接器决定,并且可以通过调整相关配置参数来进行调整。

2023-10-04 15:56:43 72 1

原创 GCC背后的故事——利用GCC创建静态库与动态库

我们通常把一些公用函数制作成函数库, 供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中, 程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中, 而是在程序运行是才被载入, 因此在程序运行时还需要动态库存在。接下来我们在Linux环境中利用GCC创建.a静态库与.so动态库静态库是在程序编译时进行使用,而动态库则是在程序运行的时候才会被使用。静态库的占用大小要比动态库小,两者各有各的优势,共同运用于我们平时的编译过程。

2023-09-30 16:14:57 63

原创 利用STM32实现流水灯程序

通过本次实验,我通过问题分析,解决思路,到具体解决方案,成功实现了利用C51与STM32实现流水灯。对STM32的GPIO时钟地址,端口输出地址等有了大致的了解,借鉴了学长们的代码后能够举一反三,在原有参考代码上进行了修改与原理分析,实现了更多的功能,总体来说收获是很大的。

2023-09-21 21:37:01 5222

原创 利用STM32与C51实现流水灯程序

通过本次实验,我通过问题分析,解决思路,到具体解决方案,成功实现了利用C51与STM32实现流水灯。对STM32的GPIO时钟地址,端口输出地址等有了大致的了解,借鉴了学长们的代码后能够举一反三,在原有参考代码上进行了修改与原理分析,实现了更多的功能,总体来说收获是很大的。

2023-09-20 20:19:26 166 1

原创 基于Ubuntu18.04 Desktop的基本代码编程与运行

通过本次作业,我已经掌握了基本linux命令,例如创建文件,生成执行文件,执行该文件;makefile方式进行文件编译;同时也掌握了如何申请root权限,如何安装升级包更新包等命令。本次实验利用基本的gcc命令在命令行窗口直接执行命令,通过将编译文件一步步转化为执行文件再最后输出结果,让我深刻意识到了代码是怎么一步步变成我们所熟悉的输出结果,让我对计算机编程也有了新的理解。

2023-09-13 21:03:32 221

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除