自定义博客皮肤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)
  • 收藏
  • 关注

原创 嵌入式RTOS多任务程序设计

UCOS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:UCOSII和UCOSIII。UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。UCOSIII是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的, UCOSIII结构简洁,可读性很强!非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。

2023-11-26 17:14:33 997 1

原创 数字温度计

在进行STM32的RTC实验时,我获得了一些宝贵的经验和心得。理解原理:首先,我深入研究了RTC的工作原理,包括其内部结构、日历计数器的工作方式、如何跟踪时间等。这有助于我更好地理解RTC的行为,并在出现问题时进行调试。硬件连接:在连接RTC和STM32F103时,我注意确保硬件的正确连接。例如,对于RTC的电源和晶振,需要确保它们被正确地连接和配置。此外,对于SPI或IIC接口,我仔细检查了连接线,确保它们正确无误。

2023-11-25 22:36:52 920

原创 点阵汉字的字模读取与显示

我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办?于是,就有了点阵。例如:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了。实物图借助取模软件,即可将我们所需要的文字或字母,以点阵的形式呈现出来。我们知道英文字母数量比较少,我们只要用一个字节(8位)就足以表达。但是汉字非常多。要怎么表达呢?

2023-11-17 09:27:53 99 1

原创 OLED屏显应用实例

在之前的串口学习中,我们经常提到一个东西叫做:“UART”,即通用串行异步通讯协议因为UART没有时钟信号,无法控制何时发送数据,也无法保证双发按照完全相同的速度接收数据;因此,双方以不同的速度进行数据接收和发送,就会出现问题如果要解决这个问题,UART为每个字节添加额外的起始位和停止位,以帮助接收器在数据到达时进行同步;双方还必须事先就传输速度达成共识(设置相同的波特率,例如每秒9600位)

2023-11-17 09:27:26 97 1

原创 两台电脑串口通信

本文通过将两台笔记本电脑,借助usb转rs232 模块和杜邦线,建立起串口连接,然后用串口助手等工具软件将一台笔记本上的一个大文件传输到另外一台电脑。实验中可以得出结论,传输的文件越大,传输时间越长,这和预期一致。在一定范围内,当波特率增大时,对于同等大小的文件,传输时间会减少,当超过这一范围时,波特率对传输时间的影响就会减小。

2023-11-17 09:25:57 1027 1

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

I2C总线通讯由起始位开始通讯,由结束位停止通讯,并释放I2C总线。起始位和结束位都由主设备发出起始位(S):在SCL为高电平时,SDA由高电平变为低电平结束位(P):在SCL为高电平时,SDA由低电平变为高电平本实验中,我成功地实现了STM32基于IIC协议的AHT20温湿度传感器数据采集,深入了解了STM32的IIC接口和AHT20温湿度传感器的使用方法,理解了IIC协议的工作原理,掌握了温湿度数据的采集和处理方法。

2023-11-13 00:17:48 56

原创 定时器&PWM应用编程

定时器就是用来定时的机器,是存在于STM32单片机中的一个外设。其本质就是计数器,只不过 计数器 记录的是STM32的外部情况,所接收的也是外部脉冲,而 定时器 则是由STM32自身提供的一个非常稳定的计数器,这个稳定的计数器就是STM32上连接的晶振部件。STM32的众多定时器中我们使用最多的是高级定时器和通用定时器,而高级定时器一般也是用作通用定时器的功能。通用定时器的功能和特点:位于低速的APB1总线上(APB1)

2023-11-04 18:16:17 161 1

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

在主函数下面定义:return ch;在main.c文件中,添加如下代码"))n=0;}//当输入的指令为“stop!"时,改变n=0n=1;}//当输入的指令为"start"时,改变n=1上面用到了HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size),其功能为串口通过DMA接受指定长度的数据。

2023-11-01 19:33:36 73 2

原创 STM32串口通信入门

char c;//#:停止发送 *:开始发送int n=1;//标志 0:停止发送 1:开始发送STM32CubeMX串口的操作及配置HAL库UART的相关函数、串口发送、接收函数、串口中断函数、串口查询函数、中断回调函数的学习及应用FlyMcu及串口助手的使用keil逻辑分析仪观察串口输出波形及实际波特率虽然这次实验在使用串口助手的时候遇到了不少问题,比如使用FlyMcu烧录时显示芯片连接超时,使用串口助手打开串口助手时没反应,没有显示输出,但好在最后都得以解决。

2023-10-25 21:52:44 210

原创 基于HAL库的LED流水灯

这次实验时基于HAL实现led流水灯,相比于便准库,其使用更方便。它可以更方便的对GPIO引脚初始化配置及控制,它不需要在代码中再设置使能时钟,设置输出模式,初始化gpio口等,其工程配置完成后,只需简单修改一下main函数中的相关代码及相关函数,就可以实现整个工程,非常方便。通过此次实验,我对STM32的HAL库及外部中断、时钟配置有了更深刻的理解,提高了我的实践能力和编程能力。

2023-10-24 16:44:42 195

原创 基于标准外设库的流水灯

标准外设库对寄存器进行了封装,形成了一套API函数供用户使用,所有相较于前面的寄存器操作方式,标准外设库方式虽在创建工程文件时较繁琐,但在代码编写的时候方面了许多,可以直接调用里面的函数。今后的程序实现可以直接用标准库模板,使用时直接修改里面的main.c文件,能省掉大量时间。人眼看到的时间和实际时间有偏差,可以利用逻辑分析仪分析。

2023-10-15 18:51:05 137 1

原创 用gcc链接静态库和动态库生成可执行文件

通过使用静态库和动态库分别链接生成可执行文件main,我深入的了解到了不同库函数的链接的作用是不一样的。静态库链接是直接在程序编译时就将其组装到一起,可以不依赖于静态库就能运行;而动态库链接是在程序运行时才将其载入内存运行且不能够缺少,否则不能运行。

2023-10-06 15:42:47 1223 1

原创 ubuntu,stm32的c程序内存分配

在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量去、代码区,其中全局区中高地址分布着.bss段,低地址分布着.data段。总的分布如下图所示这个实验是关于在Ubuntu和stm32上分别验证C程序中堆、栈、全局、局部等变量的分配地址,进行对比分析。从结果上来看:Ubuntu在栈区和堆区的地址值都是从上到下增长的;stm32的栈区的地址值是从上到下减小的,堆区则是从上到下增长的。

2023-10-06 15:41:57 67 1

原创 stm32寄存器操作点亮流水灯

STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。

2023-10-04 21:02:49 823

原创 STM32/51单片机编程入门(点亮LED)

1

2023-09-24 20:38:40 382 1

原创 嵌入式第一次作业

这次ubuntu实验中利用了gcc和makefile两种编译方式,学到gcc编译命令的编译规则和执行过程,和makefile文件编译的规则和make命令的输入规定。中间出现了许多编译问题,但也正是在这纠正过程中对这两种编译方式有了一定的掌握。

2023-09-15 22:49:57 57

空空如也

空空如也

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

TA关注的人

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