自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于HAL库的STM32F103C8T6移植uCOS

欢迎来到RTOS多任务环境!本实验的目标是在STM32F103C8T6上成功移植uCOS,并通过实践掌握嵌入式系统中操作系统的移植和应用技术,为嵌入式系统开发提供更多的功能和性能优化。编译,将代码烧录到STM32F103中,BOOT0置零,按下Reset按钮,可以看到PC13LED灯闪烁,证明代码没有问题。,选中以下文件,Add。,选中以下文件,Add。,选中以下文件,Add。,选中以下文件,Add。,选中以下文件,Add。点击BSP–>Add Files…,选中以下文件,Add。

2023-11-27 21:52:48 781 1

原创 STM32进阶-OLED显示时间+温度和湿度

通过以上硬件和软件设计,我们可以实现STM32-OLED显示时间+温度和湿度的功能。同时,这个设计也展示了STM32微控制器和OLED显示屏的强大功能和灵活性,为用户提供了一个实用且易于使用的解决方案。在硬件方面,我们将使用STM32F103C8T6微控制器作为主控制器,AHT20温湿度传感器用于测量环境温度和湿度,以及SSD1306 OLED显示屏用于显示时间、温度和湿度。数据显示:将处理后的数据通过SSD1306 OLED显示屏进行显示,实现实时的时间、温度和湿度信息展示。

2023-11-25 22:14:48 650

原创 串口传输、点阵汉字、OLED

随着计算机技术的发展和国际化的需求,机内码已经成为了广泛使用的汉字编码方式,保证了汉字在计算机系统中的准确表示和处理。打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵字形字库(压缩包中的文件HZKf2424.hz)中对应字符的字形数据,将名字和学号叠加显示在此图片右下位置。点阵字库的存储方式决定了字库的占用空间和字形的显示效果。设备在使用点阵字库时,可以根据存储的字形数据来绘制字符的轮廓或像素点阵,以实现字符的显示和输出。

2023-11-19 21:51:46 134

原创 IIC协议读取温湿度数据

软件IIC的实现相对复杂,需要编写复杂的代码,因此在实现IIC通信时,软件IIC通常是在硬件IIC无法满足需求时才采用的方式。我们希望通过这次实验,能够深入理解温湿度传感器的工作原理及使用方法,掌握I2C协议的基础知识和应用,提升我们的实践能力和解决问题的能力。硬件IIC是由STM32内部的硬件模块实现的,使用CPU的时钟信号来控制数据传输和时序,通信速度较快,可以达到几十MHz的速度。硬件IIC的实现相对简单,无需编写复杂的代码,因此在实现IIC通信时,硬件IIC通常是首选的方式。

2023-11-15 17:24:51 79 1

原创 STM32定时器&PWM应用编程

在STM32PWM模块中,通过设置定时器的计数周期和比较值,可以实现不同频率和占空比的PWM输出。通过本实验,我们成功地实现了STM32定时器的 PWM 应用编程,并通过实验数据验证了 PWM 的应用效果 通过本实验,我们不仅加深了对 ST M32定时器和 PWM 原理的理解,还提高了我们的编程技巧和实验技能。使用STM32F103的 Tim2~Tim5其一定时器的某一个通道pin(与GPIOx管脚复用,见下图),连接一个LED,用定时器计数方式,控制LED以2s的频率周期性地亮-灭。

2023-11-04 21:05:38 71 1

原创 基于中断/DMA方式的串口通信

数据位用于传输实际的数据,校验位用于检测数据传输中的错误。其中,9针的连接器常用于较新的设备,而25针的连接器则常用于较旧的设备。需要注意的是,在使用不同电平标准时,需要进行电平转换以确保正常的数据传输。RS232电平使用正负电平表示逻辑1和逻辑0,通常正电平表示逻辑0,负电平表示逻辑1。RS232电平和TTL电平是两种常见的串行通信电平标准,它们在电气特性、电平范围和使用环境等方面存在一些区别。使用环境:由于TTL电平的电压范围较小,它主要用于短距离和低功耗的通信应用,如嵌入式系统和电子设备之间的通信。

2023-11-02 18:06:08 29 1

原创 STM32串口通信入门

综上所述,"USB/TTL转232"模块通过CH340芯片将USB信号转换为TTL电平信号,并可选地将TTL电平转换为RS-232电平,从而实现USB与RS-232设备或TTL逻辑电平设备之间的串行通信。"USB/TTL转232"模块是一种转换器,用于将USB接口转换为串口RS-232电平或TTL电平。如果需要将TTL电平转换为RS-232电平,CH340芯片将TTL电平通过电平转换电路转换为RS-232电平信号。通过转换后的RS-232电平或TTL电平,实现与RS-232设备或TTL逻辑电平设备的连接。

2023-10-26 20:58:43 32 1

原创 基于HAL库的LED流水灯

为了观察一下延时函数是否准确:将鼠标移动至第一个波形的一条下降沿处,并点击,锁定此刻的时间;选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是PC13,PA15,PB0。(注意:这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确)

2023-10-24 21:05:43 50

原创 基于外设库的LED流水灯

/GPIO初始化 while(1) {//LED流水灯,保险起见,点亮其中一个灯时,将其余两个灯都关闭 GPIO_SetBits(LED_G_GPIO_PORT,LED_R_GPIO_PIN);//关灯 GPIO_SetBits(LED_G_GPIO_PORT,LED_B_GPIO_PIN);//定义变量,方便赋值。

2023-10-16 15:59:02 35 1

原创 STM32F103的流水灯点亮版

对于如何控制LED灯的亮灭,我们用到的是BIT_ADDR(GPIOX_ODR_Addr,n)函数来控制输出口的电平,从而达到控制LED的亮灭的功能。stm32的点灯则是,通过使能外设GPIO时钟,发出指令给外设GPIO,外设GPIO收到指令后,着手配置自己的寄存器,然后给IO口模式,让其实现各种功能。点亮LED需要输出低电平,地址的偏移是0x0C,所以这个数据寄存器的地址就是0x4001 0C0C,把第8位写为0就行。3、通过寄存器起始地址表,查询RCC地址范围,控制的寄存器位于APB2中。

2023-10-03 11:32:00 174

原创 GCC背后的故事;C程序常量变量的分配

动态分配内存:是在程序加载、调入、执行的时候分配 回收的内存,栈的地址是向下增长,堆的地址是向上增长 静态变量是地址向下增长 全局常量是地址向上增长\n函数的地址向上增长 而由函数,一直到栈区,地址总体是从低地址到高地址,逐步递增的。(一)stm32的堆、栈、全局变量的分配地址编程显示\n在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bss段,低地址分布着data段。(3)使用.so 库文件,创建可执行程序。

2023-09-29 08:49:59 90 1

原创 STM32,51单片机入门(点亮LED)

加载之前在Keil中生成的hex文件,勾选【校验】和【编译后执行】,点击【开始编程】,烧录程序。与PC平台上的一般程序不同,嵌入式C程序经常会看见 register和volatile 关键字,请解释这两个变量修饰符的作用,并用C代码示例进行说明。1、嵌入式C程序代码对内存(RAM)中的各变量的修改操作,与对外部设备(寄存器—>对应相关管脚)的操作有哪些相同与差别?Proteus 8版本的元件库中没有包括stm32系列,需要更新Proteus之后才能应用stm32元件库。

2023-09-24 19:10:27 95 1

原创 在ubuntu系统下用gcc以及makefile编写程序

经过这次实验,我深刻理解到了不同系统下,不同编译工具所编译文件的不同形式,让我更加了解源程序是怎样变为可执行文件的。三、在ubuntu系统下用makefile编写程序。二、在Windows系统下编译程序。makefile文件内容。一、直接使用gcc编译。vim+文件名.形式。

2023-09-15 20:25:04 42

空空如也

空空如也

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

TA关注的人

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