- 博客(14)
- 收藏
- 关注
原创 【嵌入式】基于HAL库的STM32F103C8T6移植uCOS
uCOS(Micro C/OS)是一款经典的实时操作系统(RTOS),由美国嵌入式系统专家Jean J. Labrosse开发和维护。它是一款基于优先级的可裁剪、高效、可移植的实时操作系统,适用于各种嵌入式系统的开发。2.1.1主要特点可裁剪性:uCOS可以根据实际需求进行裁剪,只包含所需的功能,避免资源浪费。高效性:uCOS具有快速的任务切换和响应时间,能够满足实时性要求。可移植性:uCOS支持多种硬件平台和编译器,使得应用可以方便地移植到不同的嵌入式系统上。
2023-11-27 20:43:48
956
1
原创 【嵌入式】STM32进阶-OLED显示时间+温度和湿度
0.前言在本次实验中,我们将学习如何使用STM32微控制器和OLED显示屏,实现显示时间、温度和湿度的功能。这个应用场景在很多项目中都非常常见,例如室内温湿度监测、气象站等。在现代生活中,对时间、温度和湿度的监测和显示具有重要的意义。无论是在家庭、办公室还是工业环境中,了解当前的时间和环境条件都是必要的。通过将这些信息实时显示在OLED屏幕上,我们可以方便地获取这些数据,从而更好地管理和调整我们的生活和工作。在过去,通常需要使用多个独立的设备来获取这些信息,例如时钟、温度计和湿度计等。但是,通过本次实
2023-11-25 18:27:41
2817
原创 【嵌入式】点阵汉字的字模读取与显示
汉字点阵原理点阵的介绍点阵是一种将图像或字符分解为由点组成的矩阵的显示方式。每个点被视为一个像素,可以通过控制每个像素的状态(亮或暗)来显示出图像或字符。在点阵显示中,通常使用一个二维矩阵来表示图像或字符,每个元素代表一个像素。矩阵的行和列分别对应于显示屏的行和列。通过设置每个像素的状态,可以在显示屏上呈现出各种图像和字符。例如,一个8x8的点阵矩阵可以表示一个由64个像素组成的图像或字符。图像或字符的每个像素通过设置为亮(通常用1表示)或暗(通常用0表示)来决定其显示状态。
2023-11-21 13:09:20
722
原创 基于标准外设库的LED流水灯
前言随着科技的不断发展,单片机技术在智能化电子产品中的应用越来越广泛。LED流水灯作为单片机应用的一种典型案例,可以用来模拟实际产品中的动态显示效果。本次实验旨在通过基于标准外设库的LED流水灯设计,对单片机进行实践操作,并深入了解其工作原理和实现方式。实验背景:LED流水灯是一种由多个LED灯珠按照一定规律排列和控制的电子装置。在各种显示场合中,LED流水灯常常用来展示动态效果,如广告牌、舞台灯光等。
2023-11-05 22:01:50
193
1
原创 STM32F103C8T6核心开发板下,采用串口中断方式实现多形式的“hello windows”通信输出实例演训
点击,选择对应开发板(这里选择的STM32F103C8):然后点击代码如下:char c;//指令 s:停止 t:开始//输出信息//提示1//提示2//提示3int flag=0;//标志 s:停止发送 t:开始发送。
2023-10-30 11:56:01
458
2
原创 STM32的USART串口通讯入门
本文仅简单介绍在嵌入式系统开发环境下,通过STM32系统与上位机(win10)的连接,完成一个简单的“hello windows!串口通讯程序一、准备工作1. 题目要求完成一个STM32的USART串口通讯程序(查询方式即可,暂不要求采用中断方式),要求:1)设置波特率为115200,1位停止位,无校验位;2)STM32系统给上位机(win10)连续发送“hello windows!win10采用“串口助手”工具接收。
2023-10-26 20:02:19
62
原创 STM32基于HAL库流水灯实验
实验背景:LED流水灯是一种由多个LED灯珠按照一定规律排列和控制的电子装置。在各种显示场合中,LED流水灯常常用来展示动态效果,如广告牌、舞台灯光等。此外,LED流水灯在教育、科研等领域也有着广泛的应用,可以帮助人们理解单片机的工作原理和电路设计。实验目的:本实验的主要目的是探究LED流水灯的控制方式,了解单片机的内部资源和外设库的使用方法。通过实验,希望能够达到以下目标:掌握基于标准外设库的LED流水灯程序设计方法;学会利用单片机内部资源进行LED流水灯的控制;
2023-10-24 21:07:35
73
原创 STM32F103下,通过电路搭建实现LED灯轮流闪烁的实验操作
那么一组GPIO就需要16x4=64位的寄存器来存放这一组GPIO的工作模式的配置,但STM32的寄存器都是32位的,所以只能使用2个32位的寄存器来存放了。CRL用来存放低八位的IO口(GPIOx0—GPIOx7)的配置,CRH用来存放高八位的IO口(GPIOx8—GPIOx15)的配置。寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。输入模式:上拉和下拉输入的电平由上拉或者下拉,浮空输入的电平是不确定的,完全由外部的输入决定,一般接按键的时候用的是这个模式。
2023-10-16 22:00:47
776
1
原创 GCC背后的故事;C程序常量变量的分配
动态分配内存:是在程序加载、调入、执行的时候分配 回收的内存,栈的地址是向下增长,堆的地址是向上增长 静态变量是地址向下增长 全局常量是地址向上增长\n函数的地址向上增长 而由函数,一直到栈区,地址总体是从低地址到高地址,逐步递增的。(一)stm32的堆、栈、全局变量的分配地址编程显示\n在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bss段,低地址分布着data段。(3)使用.so 库文件,创建可执行程序。
2023-10-06 20:14:27
46
1
原创 在STM32Cubemx开发环境下,HAL库编程实现LED流水灯及Keil环境下的仿真运行过程
一、安装教程1. STM32CubeMX 简介STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。
2023-10-04 21:28:18
1164
1
原创 问题回答!
然而,嵌入式系统的编译器可能会忽略register关键字,因为寄存器的数量有限,编译器需要根据需要进行优化和分配寄存器。使用volatile关键字可以告诉编译器不要对变量进行优化,每次访问变量时都从内存中读取或写入变量的值。3.嵌入式C程序经常会看见 register和volatile 关键字,请解释这两个变量修饰符的作用,并用C代码示例进行说明。1.嵌入式C程序代码对内存(RAM)中的各变量的修改操作,与对外部设备(寄存器--->对应相关管脚)的操作有哪些相同与差别?对外通过寄存器来修改,速度慢。
2023-09-25 22:32:07
52
1
原创 ARM开发:使用MDK编译stm32简单程序(闪烁LED)
(1)首先点击 魔法棒,然后在弹出的窗口内,点击 Debug,勾选 Use Simulator ,再选择 ULINK2/ME Cortex Debugger ,并点击 Settings。(3)复制粘贴完后,点击左上角保存按钮,在弹出的窗口内,输入文件名main.c(如果不加后缀,就不会是.c文件),点击保存,而后Text1文件就变成了main.c文件。//GPIOA_BASE=0x40000000+0x10000+0x0800=0x40010800,该地址为GPIOA的基地址。
2023-09-24 20:01:02
185
1
原创 Proteus使用教程并仿真51程序——LED流水灯
通过阅读本文章,学习到了如何使用Proteus创建工程、原理图界面的使用、设计一个简单的51原理图、使用Keil软件编译Hex文件,Proteus仿真软件使用起来十分方便,不过要更加熟练的掌握还需要上网查阅更多的资料,并且进行更多的实验。
2023-09-24 19:53:41
1621
原创 ubuntu系统下用c语言编写与用makefile方式编程主程序
5.接下来需要进行编译,需要在命令行中输入命令gcc main.c,当然这个适用于任务3类型,我们这里需要当用gcc -o main main.c -I /home/pi/test2 指定了sub1.h这个头文件所在的目录后,编译成功,然后执行成功执行命令结果如下;首先在任务3(在Ubuntu系统下用c语言编写一个简单的输出hello world的程序,并编译运行)的基础上,我们已经学会如何在Ubuntu开发环境下用c语言进行简单编程,下面为任务4实验过程以及结果。4.接下来进行写代码,日下如所示。
2023-09-15 21:26:01
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人