- 博客(13)
- 收藏
- 关注
原创 嵌入式RTOS多任务程序设计
通过进行STM32F103C8T6芯片上μC/OS的RTOS多任务程序设计实验,我获得了许多宝贵的经验和深刻的理解。本次实验让我深入理解了实时操作系统的核心概念,包括任务管理、同步与通信、时钟管理等。通过将μC/OS移植到STM32平台,我更好地理解了RTOS如何协调多个任务的执行,提高了系统的并发性。实验中,我不仅学习了μC/OS的移植,还深入研究了HAL库的初始化和配置。这让我更加熟练地使用STM32的硬件抽象层,为今后在嵌入式系统中的开发提供了更强大的工具支持。
2023-11-28 22:08:48 106
原创 RTC日历读取和OLED数字温度计
在进行RTC配置与实时读取的实验中,我获得了深刻的理解和宝贵的经验。以下是我的实验总结和心得:Hal库为RTC配置提供了强大而灵活的工具。通过使用Hal库,我能够在不涉及底层硬件细节的情况下轻松配置RTC模块,从而提高了开发效率。实验中,我深入了解了RTC的断电保持功能。这一特性确保了即使在系统断电的情况下,RTC仍能够保持准确的时间信息,为应用提供了关键的时间戳和记录功能。通过使用RS232串口通信协议,我成功地将RTC与外部环境连接起来。
2023-11-25 21:15:14 115
原创 rs323传输文件和汉字点阵及OLED屏显
PCtoLCD2002是一款专业的OLED取模软件,提供多种取模方式,包括逐行、逐列、行列、列行,用户可根据需要选择字体、大小、文字的长宽,并独立调整文字的尺寸,生成各种形状的字符。解析文件,提取汉字的点阵信息。OLED屏幕通过有机发光材料的自发光原理,实现了对每个像素的独立控制,无需背光,从而提供了更高的对比度、更广的视角、更快的响应速度和更真实的颜色表现。由于OLED屏幕是由柔性的有机材料构成,因此可以制造成弯曲和柔性的形态,使得它们可以适应更多的应用场景,如弯曲屏幕、可穿戴设备等。
2023-11-19 20:32:53 370
原创 通过IIC协议读取温湿度数据
在本实验中,我们将介绍使用STM32微控制器和AHT20温度和湿度传感器,根据I2C协议在实验室收集温度和湿度数据。通过这个实验,我们可以学习如何在STM32上设置I2C通信,然后如何初始化AHT20传感器,以及如何读取和解析AHT20发送的温度和湿度数据。通过这个实验,我们将深入了解STM32微控制器和AHT20温度和湿度传感器的工作原理和应用方法。通过实际操作,我们将掌握基于I2C协议的数据采集方法,并改进我们的嵌入式系统和物联网应用程序开发能力。
2023-11-14 21:32:12 174 1
原创 stm32使用cubemx配置pwm呼吸灯
io口如何产生一个pwm,无非就是做一个高低电平周期性的变化,这种思想很重要,确定频率就可以确定周期(T=1/f)也就是在一个周期内产生pwm的时间可以确定下来了,如何改变占空比确定了时间,高电平的时间不就是想要的占空比么,比如要产生一个频率1khz,占空比为70%的pwm,根据频率我们知道了周期为1ms,产生一个占空比为70%的不就是0.7ms的时间给高电平么,我们用定时器中断的方式,使0.1ms产生一次中断,计数中断次数,中断处理函数前七次中断都给高电平就ok了。我们就完成了一个pwm呼吸灯的配置了。
2023-11-04 23:08:02 478 1
原创 STM32—基于中断/DMA方式的串口通信
STM32是一种广泛用于嵌入式系统开发的32位微控制器,基于ARM Cortex-M处理器,具备强大的性能和多种外设功能。在嵌入式系统中,串口通信是一种常见的方式,用于与外部设备进行数据交互。这个实验旨在教授如何在STM32微控制器上使用中断和DMA(直接内存访问)来进行串口通信。中断方式通过启用串口接收中断,一旦有数据到达,会触发中断服务函数来处理数据。DMA方式则通过配置DMA通道,实现数据的直接传输,从而减轻CPU的负担,提高通信效率。
2023-11-02 14:48:55 192
原创 stm32cubemx配置串口中断
USART(通用同步异步收发器)是一种串行通信设备,可以与外部设备进行全双工数据交换。与之不同的是UART,它仅支持异步通信,无需提供时钟输出。串口通信通常以帧格式传输数据,包括起始信号、数据、停止信息和可能的校验信息。USART满足工业标准NRZ异步串行数据格式,并支持多种波特率,使其在不同应用中广泛使用。它还支持同步单向通信、半双工发单线通信、同步单向通信、半双工单线通信、LIN、智能卡协议和IrDA SIR ENDEC规范,可通过DMA实现高速数据传输。
2023-10-31 13:25:27 159 1
原创 基于HAL库的LED流水灯
此次试验学习如何配置STM32的GPIO引脚以控制外部设备,这是嵌入式开发的基本步骤。理解如何使用STM32的HAL库函数,简化了底层硬件控制,减少了代码的复杂性。通过创建项目、编写代码、调试和烧录固件,学习了嵌入式软件开发的整个流程。通过诊断和解决LED灯工作不正常的问题,提高了调试技能。学会如何添加延时以控制LED流水灯的速度,重要的时间管理技能。了解了硬件与软件之间的交互,如何在代码中控制外部硬件设备。通过实际项目,将学到的理论知识应用到实际情境,深化了对嵌入式系统的理解。
2023-10-20 11:18:52 117 1
原创 第6周实验2---基于标准外设库的LED流水灯
流水灯的实现思路是,从PA0开始,点亮该端口,然后延时一段时间,接着熄灭所有灯。2. 在代码中,LED灯的亮/灭周期是通过软件中的循环延时来控制的。在本例中,作者提到使用的芯片型号是STM32F103ZEC8T6,这是一个64K容量的微控制器,因此需要选择中容量版本的启动文件:`startup_stm32f10x_md.s`。同时,通过LED流水灯的实现,加深了对GPIO控制的理解。要在实验1的基础上使用标准外设库来控制多个LED灯,让它们交替闪烁,每个LED灯亮起和熄灭的周期为1秒。
2023-10-17 17:06:56 81
原创 GCC故事及C程序地址分配
整块4G存储器开始地址标为0x0000_0000,结束地址为0xFFFF_FFFF,地址的位数是32位,那么2^32=4,294,967,296,由于一个基本的存储单元是8bits即1Byte(每个地址对应一个存储单元,这样如果只是访问某一bit就要使用位操作,或者使用位带操作),因此4,294,967,296/1024=4,194,304KB,\n4,194,304/1024=4096MB,\n4094/1024=4GB。在Ubuntu上,局部变量的地址在函数调用时动态分配,并且随着函数的退出而释放;
2023-10-07 23:53:19 117 1
原创 STM32F103的流水灯点灯(寄存器地址操作)
实践对于本课程是十分重要的,只有尝试和改正才能助我们修成一门学问。//GPIOA_BASE=0x40000000+0x10000+0x0800=0x40010800,该地址为GPIOA的基地址#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)//GPIOB_BASE=0x40000000+0x10000+0x0C00=0x40010C00,该地址为GPIOB的基地址#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
2023-10-07 19:34:25 405 1
原创 STM32/51单片机编程入门
一. 使用Proteus 完成一个C51程序设计和仿真1.在keil uVision软件上编写程序代码如下:{ int i,j;for(i=0;i<a;j<1000;P0=0xfd;P0=0xfb;P0=0xf7;P0=0xef;P0=0xdf;P0=0xbf;P0=0x7f;
2023-09-26 22:33:05 319
原创 练习:Ubuntu系统使用gcc和Makefile编译C程序
此次练习为第一次使用虚拟机完成各种指令,从陌生到上手还是比较快的,多练习多尝试很快就会成功!编写makefile文件之后执行命令make(需要下载)。执行make clean,删除文件。练习1: 利用gcc编写c语言。主文件编写main1.cpp。练习3:利用makefile。新建头文件程序sub1.h。
2023-09-15 23:42:21 82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人