自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

UCOS是Micrium公司出品的RTOS类实时操作系统, UCOS目前有两个版本:UCOSII和UCOSIII。UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制,提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。UCOSIII支持时间片轮转调度,因此在一个优先级下会有多个任务,那么我们就要对这些任务做一个管理,这里使用OSRdyList[]数组管理这些任务。同一优先级下如果有多个任务的话最先运行的永远是HeadPtr所指向的任务。

2023-11-27 18:14:22 893 1

原创 数字温度计

实时时钟。RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。本次实验主要了解了 STM32F103的RTC的原理,并使用带SPI或IIC接口的OLED屏显模块实现读取STM32F103C8T6 内部的时钟、日历,1秒周期以及读取AHT20的温度和湿度,并通过OLED,把年月份时分秒、日历和实时温度、湿度显示出来,2秒周期。

2023-11-20 22:11:23 127 1

原创 串口传输文件

本次实验主要进行了串口传输文件的实际操作。在实现串口传输文件的过程中,展示了如何通过串口模块和杜邦线搭建一条串口传输线路,在分析了预算传输时间、波特率、文件大小三者之间的关系后证实了传输过程中出现丢包重传的现象。

2023-11-18 23:55:48 579 1

原创 汉字点阵以及用opencv显示图片

本次实验主要是进行了在Ubuntu下用C++调用opencv库编程显示一张图片的实际操作。在这个过程中也遇到了一些问题,在提取opencv.zip的时候出现归档错误一直无法正确提取,最后通过相关命令得以解决。

2023-11-18 23:29:40 448 1

原创 stm32+OLED显示数据

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用在 ADC、LCD 等设备与 MCU 间要求通讯速率较高的场合。

2023-11-18 23:29:18 510 1

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

I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。本次实验了解了12C总线协议以及AHT20温湿度传感器的使用,还通过软件模拟实现12C。在此实验中碰到了许多问题,在编译的过程中显示.h文件打不开,添加路径后得以解决,传输的过程中由于接线不稳采集不到数据,在解决这些问题后完成的就比较顺利。

2023-11-15 13:09:29 101

原创 定时器&PWM应用编程

通过这次实验我了解了定时器和PWM的相关原理和内容,也进行了定时器和PWM的应用使得理解更加深刻,在本次实验的过程中依旧遇到了前几次实验中所出现的问题,因此也能顺利快速的解决,环境配置是至关重要的,对应不同的问题任务环境配置也是不同的不过也是大同小异,关键核心位置的配置掌握即可。

2023-11-03 15:39:18 116

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

在了解串口协议和RS-232标准、RS232电平与TTL电平的区别以及"USB/TTL转232"模块的工作原理后,使用stm32CubeMX,并配合Keil,用HAL库的方式,成功地实现了STM32微控制器的串口通信功能,并在没有示波器的情况下使用逻辑分析仪功能观察串口的输出波形。通过这次的实验我掌握了STM32的配置方法,也熟悉了串口中断和DMA技术,也算是掌握了串口通信的基本原理。不过在这个过程中也还是遇到了许多问题,对于时序状态正确与否的分析还是不太娴熟,有待提高。

2023-10-30 23:44:29 77 1

原创 STM32串口通信入门

在了解串口协议和RS-232标准、RS232电平与TTL电平的区别以及"USB/TTL转232"模块的工作原理后,使用stm32CubeMX,并配合Keil,用HAL库的方式,成功地实现了STM32微控制器的串口通信功能,并在没有示波器的情况下使用逻辑分析仪功能观察串口的输出波形。通过这次的实验我掌握了STM32的配置方法,也熟悉了串口中断和DMA技术,也算是掌握了串口通信的基本原理。不过在这个过程中也还是遇到了许多问题,对于时序状态正确与否的分析还是不太娴熟,有待提高。

2023-10-26 00:16:11 180

原创 基于HAL库的LED流水灯

通过本次实验我不但了解了STM32中断原理和HAL库函数的开发方法还对其有所掌握,还在没有示波器的条件下使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形。本次实验的主要内容是基于HAL库的LED流水灯,实验需要用到stm32CubeMx配合Keil,使用HAL库方式来完成。

2023-10-22 23:12:59 75 1

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

通过这个实验,我对STM32寄存器操作和标准外设库的使用有了更深入的了解,在没有示波器的条件下,通过使用Keil的软件仿真逻辑分析仪功能观察管教的时序波形,也更加方便动态跟踪调试和定位代码故障点。

2023-10-16 20:17:47 61 1

原创 STM32F103之点亮LED流水灯

在此次实验中,我学会了如何利用STM32F103C8T6最小系统模板,并且运用寄存器的方式点亮并实现LED流水灯。本次实验让我对Keil和Proteus的使用更加熟练,在实验过程中也遇到许多问题,由于Proteus的版本问题导致无法使用STM系列的芯片、启动文件的添加、程序没有SystemInit函数编译一直报错、烧录时连接不上等等问题,好在通过查询资料都顺利解决,然而本次实验也只是STM32学习的入门,需要多加练习。

2023-10-02 19:43:28 2763 1

原创 在Ubuntu系统和STM32下对C程序中变量的分配地址的编程验证及对比

本次实验对全局、局部变量、堆、栈等变量的概念、分配地址及对比分析做了一个归纳,并且在Ubuntu(x86)系统和STM32(Keil)中分别进行了编程验证,也加深了对ARM Cortex-M/stm32F10x的存储器地址映射的理解。

2023-09-28 20:51:22 120 1

原创 gcc生成静态库.a和动态库.so及静态库.a与动态.so库文件的生成与使用

本次实验是通过三个程序用gcc生成静态库和动态库的练习,分别在gcc生成静态库.a和动态库.so及静态库.a与动态.so库文件的生成与使用,在这个过程中也能看出两者的区别,利用不同的工具和不同的文件命名规范以及不同的编译链接将源代码编译得到.o文件,此次过程结束后基本上能够熟练的生成静态库和动态库。

2023-09-26 01:07:11 254

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

操作的主要内容是如何使用MDK软件来完成一个简单STM32的程序的编译,其重要条件是mdk5软件和stm32包的安装,需要熟悉mdk的开发环境,从而进行程序的编译和仿真。二者的性能不一样,51单片机是8位的,写代码时要考虑8个位置上的数值,STM32是32位的,写代码时要考虑32个位置上的数值,所以51单片机操作起来更简单;register称为寄存器型,尽量让这个被修饰的变量存放在CPU的寄存器中供程序进行读写,因为它的值很少被修改,直接通过寄存器访问,就能提高程序的性能。,在工程下添加main.c文件。

2023-09-23 23:27:14 1223 2

原创 使用MDK软件进行一个STM32简单程序的编译(LED灯闪烁)

本次操作的主要内容是如何使用MDK软件来完成一个简单STM32的程序的编译,其重要条件是mdk5软件和stm32包的安装,需要熟悉mdk的开发环境,从而进行程序的编译和仿真。由于没有接入硬件设施只能先进行程序的编译和仿真测试。

2023-09-23 21:16:53 210 1

原创 关键字register和volatile

register称为寄存器型,尽量让这个被修饰的变量存放在CPU的寄存器中供程序进行读写,因为它的值很少被修改,直接通过寄存器访问,就能提高程序的性能。register变量必须是能被CPU所接受的类型,意味着register变量必须是一个单个的值,并且长度应该小于或者等于整形的长度。不能对register变量取地址,因为寄存器不能通过地址直接访问,寄存器中没有地址的概念,地址是在内存中相关的。用volatile修饰变量或地址,相当于告诉编译器这个值会随时发生变化,每次使用都要去内存中重新读取它的值。

2023-09-20 21:08:19 165 1

原创 有关STM32F103系列芯片的地址映射和寄存器映射原理

对外部设备:通过地址,不同的寄存器有不同的地址,寄存器本身不具有地址信息,是通过储存器的映射给其分配地址。一般外设为加快处理速度都有自己的片内RAM,分出去的地址空间也就与片内RAM物理连接,CPU也能访问内存一样去访问外设的片内RAM。在储存器的区域单元中,每一个单元对应不同的功能,根据其不同的功能给已经分配好的地址的内存单元取名。二者的性能不一样,51单片机是8位的,写代码时要考虑8个位置上的数值,STM32是32位的,写代码时要考虑32个位置上的数值,所以51单片机操作起来更简单;

2023-09-20 00:54:40 117 1

原创 一个C51程序设计和仿真(流水灯)

本次实验主要是利用Proteus创建工程、原理图界面以及Keil软件来编译Hex文件,需要熟练使用Proteus和Keil,这也是51单片机的入门。重点是这两个软件的熟练使用,之后的过程自然就会很顺利。

2023-09-19 23:26:32 326 1

原创 Ubuntu系统使用gcc和Makefile编译c程序

Ubuntu系统使用gcc和Makefile编译c程序

2023-09-12 17:47:09 626 2

空空如也

空空如也

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

TA关注的人

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