自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

在移植uCOS到STM32F103C8T6上,我遇到了一些挑战和问题,但通过不懈的努力和实验,我最终成功地完成了移植。在移植过程中,我遇到了一些性能和稳定性方面的问题,通过对系统进行调试和优化,我成功地解决了这些问题。综上所述,本实验的目标是在STM32F103C8T6上成功移植uCOS,并通过实践掌握嵌入式系统中操作系统的移植和应用技术,为嵌入式系统开发提供更多的功能和性能优化。总的来说,通过这次实验,我不仅学到了很多关于HAL库和uCOS的知识,也积累了宝贵的经验和心得体会。,选中以下文件,Add。

2023-11-27 21:37:32 882 1

原创 11周实验

此外,通过与AHT20温湿度传感器的结合,我成功地获取到了环境温度和湿度的数据,并通过OLED显示屏进行了实时显示。总之,本次实验将带领我们实现一个功能强大且实用的应用,通过STM32微控制器和OLED显示屏,实时显示时间、温度和湿度。总的来说,这个实验不仅让我对STM32微控制器、OLED显示屏和温湿度传感器有了更深入的了解,还提升了我的嵌入式系统开发能力和编程技巧。我将继续深入学习和探索STM32微控制器和相关技术,不断提升自己的能力,为嵌入式系统的开发和应用做出更多的贡献。

2023-11-25 21:08:30 914

原创 汉字点阵与OLED屏显

新建文件夹放入一张需要显示的图片,24*24的点阵.hz文件,ASCII码.zf文件,需要显示的文本文件。修改AHT20-21_DEMO_V1_3.c文件的代码。logo文件改为自己的名字和学号。复制到Oledfont.h中。复制到Oledfont.h中。复制到Oledfont.h中。修改mian.c文件的代码。

2023-11-19 20:25:07 285 1

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

通过本实验,我们将学习如何在STM32上设置I2C通信,如何初始化AHT20传感器,以及如何读取和解析AHT20发送的温湿度数据。AHT20温湿度传感器是一种常见的环境监测设备,它可以通过I2C协议与STM32微控制器进行通信,从而实现对环境温湿度数据的采集。通常情况下,如果硬件上已经有集成的硬件I2C接口,建议使用硬件I2C以提供更高的性能和可靠性。总的来说,本次实验帮助我们深入理解了I2C协议的应用和AHT20温湿度传感器的工作原理,为我们后续的物联网和嵌入式系统开发提供了很好的基础。

2023-11-19 15:02:10 113 1

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

特别是采用定时器pwm模式将LED灯的呼吸效果做出来的时候,彷佛感觉这灯真的在呼吸,就是差点呼吸的声音,很逼真的。在STM32PWM模块中,通过设置定时器的计数周期和比较值,可以实现不同频率和占空比的PWM输出。使用STM32F103的 Tim2~Tim5其一定时器的某一个通道pin(与GPIOx管脚复用,见下图),连接一个LED,用定时器计数方式,控制LED以2s的频率周期性地亮-灭。在本实验中,我们将使用STM32开发板和相关的开发环境,通过编程配置定时器和PWM输出,实现对LED灯的亮度控制。

2023-11-05 20:56:32 188 1

原创 【STM32—HAL库中断/DMA控制和完成串口通信】

DMA方式则通过配置DMA通道,实现数据的直接传输,减轻CPU的负担,提高通信效率。其中,9针的连接器常用于较新的设备,而25针的连接器则常用于较旧的设备。STM32是一款基于ARM Cortex-M处理器的32位微控制器系列,具有丰富的外设和强大的性能,广泛应用于嵌入式系统开发。通过完成本实验,够掌握STM32中断和DMA方式的串口通信原理和实现方法,为后续的嵌入式系统开发奠定基础。以上就是RS-232标准的介绍,该标准定义了串行通信的电气特性、信号传输方式和接口连接等方面的规范。

2023-11-02 20:26:23 1476 1

原创 【STM32F103的流水灯点亮版本1】

GPIO Pull-up/Pull-down :No pull-up and no pull-down的意思是设置为输出没有上拉和下拉输出,其实安逻辑来说我们是需要给我们的LED给一个下拉电阻才能点亮的,但是在实际的运用中为了简便发现这样也可以点亮,并且因为电流大,所以LED亮度很高;通过这次实验,不仅理解了STM32cubemx的基础原理知识,同时通过在stm32cubeMX的开发环境下,运用HAL库编程实现LED流水灯及Keil环境下的仿真运行,观察其波形,又进一步加深了我对这部分知识的理解与运用。

2023-11-01 20:05:56 80 1

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

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

2023-11-01 19:14:35 69 1

原创 STM32使用HAL库中断控制串口通信

它通常用于将计算机(PC、Mac、Raspberry Pi等)的USB接口连接到其他设备(如微控制器、传感器、模块等)的串口接口,以便进行通信和数据交换。综上所述,"USB/TTL转232"模块通过CH340芯片将USB信号转换为TTL电平信号,并可选地将TTL电平转换为RS-232电平,从而实现USB与RS-232设备或TTL逻辑电平设备之间的串行通信。4、信号电平转换:USB转TTL设备将USB接口的电压(通常为5V)转换为TTL串口接口的逻辑电平(通常为3.3V或5V,具体取决于设备)。

2023-10-26 19:51:50 252 1

原创 STM32基于HAL库流水灯实验

电路连接方面,需要将LED灯珠的正极连接到单片机I/O口,负极接地,同时串联适当的电阻以保护LED灯珠。通过这次实验,不仅理解了STM32cubemx的基础原理知识,同时通过在stm32cubeMX的开发环境下,运用HAL库编程实现LED流水灯及Keil环境下的仿真运行,观察其波形,又进一步加深了我对这部分知识的理解与运用。本实验的主要目的是探究LED流水灯的控制方式,了解单片机的内部资源和外设库的使用方法。(注意:这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确)

2023-10-24 20:25:29 207

原创 STM32F103下,通过电路搭建实现LED灯轮流闪烁的实验操作

寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。输入模式:上拉和下拉输入的电平由上拉或者下拉,浮空输入的电平是不确定的,完全由外部的输入决定,一般接按键的时候用的是这个模式。根据题目要求,使用GPIOA-5、GPIOB-9、GPIOC-14 这3个引脚来控制LED灯,在查询C8T6数据手册后,管脚分别连接红绿蓝三种颜色的LED灯。在新建的工程中添加启动文件(startup_stm32f10x_hd.s),该文件可以先到固件库中复制到此处startup_stm32f10x_hd.s。

2023-10-16 19:54:06 554 1

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

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

2023-10-06 19:57:16 75 1

原创 STM32F103的流水灯点亮版本1

GPIO Pull-up/Pull-down :No pull-up and no pull-down的意思是设置为输出没有上拉和下拉输出,其实安逻辑来说我们是需要给我们的LED给一个下拉电阻才能点亮的,但是在实际的运用中为了简便发现这样也可以点亮,并且因为电流大,所以LED亮度很高;通过这次实验,不仅理解了STM32cubemx的基础原理知识,同时通过在stm32cubeMX的开发环境下,运用HAL库编程实现LED流水灯及Keil环境下的仿真运行,观察其波形,又进一步加深了我对这部分知识的理解与运用。

2023-10-04 21:48:48 153 1

原创 【无标题】

如果不加volatile关键字,编译器可能会将一些读写变量的代码优化掉,因为编译器认为它们的值不会发生变化,但实际上这些变量的值可能被其他线程或硬件修改。变量和寄存器都通过定义来代表内存或外设中的一个地址空间,都通过相同的C语言基础语法进行编写,而且都通过变量或寄存器来实现对内存或外设的读写操作。(2)对外设的操作,操作对象是硬件,包括各种端口、时钟等,通过对各个寄存器的修改来操作速度相较于对内存来说更慢。(1)C代码对内存修改的变量是储存在内存里的数据,由CPU直接读取和写入,速度较快;

2023-09-24 20:37:45 68 1

原创 ARM开发:使用MDK编译stm32简单程序(闪烁LED)

(1)首先点击 魔法棒,然后在弹出的窗口内,点击 Debug,勾选 Use Simulator ,再选择 ULINK2/ME Cortex Debugger ,并点击 Settings。(3)复制粘贴完后,点击左上角保存按钮,在弹出的窗口内,输入文件名main.c(如果不加后缀,就不会是.c文件),点击保存,而后Text1文件就变成了main.c文件。(5)选中main.c文件,再点击Add,然后关闭窗口,此时你会发现,Source Group 1 文件下新增了一个main.c文件。

2023-09-24 19:59:17 221 1

原创 熟悉Proteus 电路仿真软件,并完成一个C51程序设计和仿真

文章目录一、Proteus简介二、熟悉Proteus软件1.创建工程2.界面简介二、51程序设计和仿真1、绘制原理图1)添加元件2)摆放元件2、编写51程序1)创建一个工程2)编写main.c文件3)生成 .hex 文件3、开始仿真五、总结一、Proteus简介Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

2023-09-24 19:51:21 1827 1

原创 在Ubuntu系统下,用gcc/makefile对c语言程序的简单编译

1、用gcc 命令行方式编译主程序main1.c 并运行;(1)、main1程序代码:int main()float a,b;a=3;b=3;return 0;(2)、sub1程序代码return a+b;

2023-09-15 22:17:30 102 1

空空如也

空空如也

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

TA关注的人

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