- 博客(10)
- 收藏
- 关注
原创 Flash地址空间的数据读取
在此过程中,我通过多次写入8KB数据,并验证写入数据的正确性,完成了对STM32F103C8T6的Flash存储的完整读写测试。STM32F103C8T6的Flash存储采用的是页擦除方式,即在写入数据之前需要先擦除对应的Flash页。每次写入8KB数据时,我通过控制代码确保Flash的写入操作是顺序进行的,并且每次写入完成后进行数据校验。在完成64KB的写入后,我继续将数据写入更高地址的Flash区域,检验STM32F103C8T6是否存在超过64KB的有效Flash存储空间。
2024-12-26 17:44:00
736
原创 STM32F103C8T6基于HAL库移植uC/OS-III
uC/OS-III(Micro-Controller Operating System Version III)是一个实时操作系统(RTOS),由Micrium公司开发,主要用于嵌入式系统中。它设计轻量、功能强大,适用于资源受限的设备,如微控制器(MCU)和数字信号处理器(DSP)。uC/OS-III是uC/OS系列操作系统的第三个版本,继承了uC/OS-II的优点,并在此基础上进行了增强和优化。
2024-12-21 17:28:01
645
原创 STM32基于IIC的温湿度读取以及OLED显示
I2C总线是一种半双工(Half-Duplex)协议,意味着数据在任何时刻只能单向传输。双线制通信:SDA(数据线)和SCL(时钟线)。主从结构:I2C总线可以支持多个设备,其中一个设备作为主设备(Master),控制时钟线,其他设备为从设备(Slave)。地址分配:每个I2C设备都有一个唯一的地址,通常为7位或10位。同步传输:主设备控制SCL线的时钟信号,确保数据传输按时序进行。I2C协议是一个简单、灵活的串行总线通信协议,广泛应用于嵌入式系统中的低速设备通信。
2024-12-13 21:01:37
1142
原创 STM32使用PWM制作呼吸灯
PWM(Pulse Width Modulation,脉宽调制)是一种通过控制脉冲的宽度来调节功率输送的技术。简单来说,PWM是通过改变信号的“开”时间(高电平时间)和“关”时间(低电平时间)来实现对输出功率的控制。常用于控制电机转速、调节亮度、音频信号合成等场景。PWM是通过改变脉冲的宽度来控制功率的一种技术,具有高效、精确、低热量的优点,广泛应用于电机调速、LED亮度控制等领域。通过定时器配置寄存器,用户可以灵活控制PWM的输出模式、占空比和频率,从而实现对电气设备的精确调控。
2024-12-11 15:03:36
1211
原创 STM32使用定时器进行串口通信和点灯
定时器(Timer)是嵌入式系统中用于精确测量时间间隔或周期性产生时间事件的硬件模块。STM32微控制器提供了多种定时器,可以进行计时、产生PWM信号、测量频率、产生中断等多种操作。STM32的定时器非常强大,支持多种模式,能够适应不同的应用场景。通过配置合适的时钟源、预分频器、自动重载值等,可以实现精准的时间控制和各种功能,如PWM输出、定时中断、频率测量等。掌握定时器的使用对于嵌入式开发非常重要,能够帮助开发者更好地控制时间和事件。
2024-12-11 15:03:27
621
原创 STM32串口通信
因此,我学会了如何通过细心调试,确保各项参数的匹配,提升了代码的可读性和可靠性。在完成这些任务的过程中,我不仅掌握了串口通信的基础编程技巧,还深入了解了串口通信的参数配置,如数据位、停止位、校验位等,这些细节直接影响到程序的可读性、稳定性和可维护性,提升了我的编程能力和思维方式。DMA的作用就是实现数据的直接传输,而去掉了传统数据传输需要CPU寄存器参与的环节,主要涉及四种情况的数据传输,但本质上是一样的,都是从内存的某一区域传输到内存的另一区域(外设的数据寄存器本质上就是内存的一个存储单元)。
2024-12-09 18:57:23
1055
原创 STM32基于HAL库的中断控制LED流水灯
通过HAL库提供的HAL_GPIO_ReadPin和HAL_GPIO_Init等函数,我能够轻松地设置GPIO为中断模式,并在中断服务程序中处理事件,这大大减少了编程的复杂性。通过这次实验,我对STM32的中断机制有了更深入的理解。配置时钟,进入上面的rcc,有两个时钟,一个是hse和lse,将hse那里设为Crystal/Ceramic Resonator。在本实验中,我设置了外部中断的优先级,确保了中断响应的及时性。NVIC中断优先级配置,点击NVIC,进入其中,按照图示步骤进行操作。
2024-11-30 18:45:32
729
原创 基于HAL库的LED流水灯
在实验中,我通过调用HAL库提供的函数,如HAL_GPIO_WritePin,轻松实现了对GPIO的控制,这让我对硬件编程有了更深的理解。通过本次实验,我从0入手掌握cubemx,发现其十分便捷,以及配合hal库使用,让点灯过程更加便捷,高效了。通过直观的界面,我能够快速配置微控制器的外设和参数,大大减少了手动配置的错误和时间成本。配置时钟,进入上面的rcc,有两个时钟,一个是hse和lse,将hse那里设为Crystal/Ceramic Resonator。
2024-11-30 15:31:07
771
原创 F103C8T6基于寄存器与固件库的LED流水灯
寄存器是存储代码的硬件,由多个具有存储器组合而成。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
2024-11-19 19:50:05
824
1
原创 在Ubuntu 20.04虚拟机中安装VSCode并进行C语言编程入门练习
在这次实验中,我深入钻研了Ubuntu系统的部署、配置以及C语言编程领域,获得了丰富的收获。首先,我在Windows平台上借助虚拟机技术安装Ubuntu系统的经历,使我对虚拟化技术有了更为直观的理解。虚拟机为我们打造了一个既安全又便捷的实验场所,让我们能够在不干扰主机系统的前提下,自由尝试各类操作系统和软件。尽管安装过程需要一些耐心和细致,但只要按照既定步骤操作,其实并不复杂。这一过程让我深切感受到科技带来的便捷,使我们能够轻松地在不同操作系统间穿梭,满足多元化的学习和工作需求。
2024-11-13 23:21:42
1320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人