- 博客(13)
- 收藏
- 关注
原创 将uc/OS-III移植到stm32F103上的嵌入式实时操作系统(RTOS)-HAL库
uC/OS-III是一款高效、可移植、可裁剪的实时嵌入式操作系统,STM32F103C8T6是基于HAL库的微控制器。实操过程中,首先需要在STM32F103C8T6上移植uC/OS-III操作系统,然后使用逻辑分析仪抓取波形进行协议分析。通过这个过程,可以深入了解uC/OS-III的操作过程,以及如何在微控制器上实现基于操作系统的开发。同时,通过逻辑分析仪抓取的波形数据,可以进一步进行协议分析,对于研究嵌入式系统的通信协议具有重要意义。
2023-11-28 12:14:44
1691
原创 数字温度计
(1)AHT20是一款由法国Hall传感器公司生产的数字温湿度传感器,它具有高精度、低功耗、数字输出等特点,广泛应用于温湿度监测、空气质量检测、智能家居等领域。下面将详细介绍AHT20的原理、配置步骤、注意事项等。1.原理AHT20传感器基于热敏电阻和电容式湿度传感器的原理,能够同时测量温度和湿度。热敏电阻能够感应温度的变化,而电容式湿度传感器则能够感应空气中的湿度。在AHT20中,热敏电阻和湿度传感器被放置在一个封装中,通过内部的电路进行信号处理和数字化输出。
2023-11-25 22:42:25
864
原创 汉字点阵与OLED屏显
1.区位码在国标GD2312—80中规定,所有的国标汉字及符号分配在一个94行、94列的方阵中,方阵的每一行称为一个“区”,编号为01区到94区,每一列称为一个“位”,编号为01位到94位,方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个阿拉伯数字就是它们的“区位码”。区位码的前两位是它的区号,后两位是它的位号。用区位码就可以唯一地确定一个汉字或符号,反过来说,任何一个汉字或符号也都对应着一个唯一的区位码。汉字“母”字的区位码是3624,表明它在方阵的36区24位,问号“?
2023-11-19 22:43:58
100
1
原创 IIC协议读取温湿度数据
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。
2023-11-15 19:35:49
53
1
原创 STM32基于HAL库的定时器&PWM应用编程
PWM(Pulse Width Modulation)即脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术;它是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。基本原理在高级时钟中,捕获功能大致如上面所示。其功能模块大致分成两个部分:输入阶段捕获/比较阶段。
2023-11-04 22:36:56
360
1
原创 STM32—HAL库中断/DMA控制和完成串口通信
RS-232:标准串口,最常用的一种串行通讯接口。最被广泛使用的是RS-232C,它将mark(on)比特的电压定义为-3V到-12V之间,而将space(off)的电压定义到+3V到+12V之间。当串口通信开启(STM32向电脑发送信息)的时候,LED灯亮,当串口通信关闭(STM32停止向电脑发送消息)的时候,LED灯灭。支持全双工(发送同时也可接收)。3 .RS-485(EIA-485标准)是RS-422的改进, 支持多对多(2线连接),从10个增加到32个,可以用超过4000英尺的线进行串行通行。
2023-11-02 17:47:20
1566
2
原创 STM32串口通信入门
自收自发:正常通信时RXD接其他设备的TXD,因此如果要接收自己发送的数据顾名思义,也就是自己接收自己发送的数据,即自身的TXD直接连接到RXD,用来测试本身的发送和接收是否正常,是最快最简单的测试方法,当出现问题时首先做该测试确定是否产品故障。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法。同是5伏供电的话,ttl一般是1.7V和3.5V的样子,CMOS一般是2.2V,2.9V的样子,不准确,仅供参考。
2023-10-26 22:26:57
99
原创 基于HAL库的LED流水灯
最后点击右上角的GENERATE CODE 就创建完成了,找到创建项目的文件夹,找到.uvprojx文件并打开。5.选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是PA0,PA1,PA2。3.点击setup,设置端口PA0、PA1、PA2的地址,设置Dispaly Type 为Bit。3.点击from local,找到刚才下载的固件库压缩包,再点击打开,这就完成了固件库的安装。选择安装位置,默认位置是安装在C盘中(注意:安装位置不要出现中文)选择STM32CubeMX 的版本。
2023-10-24 21:30:13
34
1
原创 基于寄存器与基于固件库的stm32 LED流水灯
1、新建STM32工程文件夹(1)从官网下载外设库文件:https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html进去之后,我的单片机版本是STM32F103C8T6,所以我选择并且点击图中的F1然后选择版本,下载、解压。(2)建立一个STM32工程文件夹(3)在工程文件中新建立以下三个文件。
2023-10-16 19:06:11
68
1
原创 GCC背后的故事&C程序常量变量的地址分配
在使用到这些公用函数的源程序中包 含这些公用函数的原型声明,然后在用 gcc 命令生成目标文件时指明静态库名,gcc 将会从 静态库中将公用函数连接到目标文件中。用 gcc 来创建动态库。在程序中使用动态库和使用静态库完全一样,也是在使用到这些公用函数的源程序中包含 这些公用函数的原型声明,然后在用 gcc 命令生成目标文件时指明动态库名进行编译。3.将x2x、x2y目标文件用 ar工具生成1个 .a 静态库文件, 然后用 gcc将 main函数的目标文件与此静态库文件进行链接,生成最终的可执行程序。
2023-10-06 21:05:46
75
1
原创 STM32F103的流水灯点亮
题目要求:了解核心板(STM32F103C8T6,国际上又统称 STM32 Blue Bill开发板)的电路原理图,用Proteus 设计一个STM32最小系统板+LED流水灯实验原理图,仿真运行。1、最小系统板原理图:2、实验过程:新建项目之后,在元件模式下如下图点击P按钮在弹出的窗口搜索“STM32F103”,继续搜索LED,在结果中选择LED-BLUE、LED-GREEN、LED-RED其中,电源在左侧的工具栏选择终端模式,之后点击Power。
2023-10-04 21:14:21
591
1
原创 STM32/51单片机编程入门(点亮LED)
define LED0 MEM_ADDR(BITBAND(GPIOA_ODR_Addr,8)) //#define LED0 *((volatile unsigned long *)(0x422101a0)) //PA8 //定义typedef类型别名 typedef struct { volatile unsigned int CR;(6)复制粘贴完后,点击左上角保存按钮,在弹出的窗口内,输入文件名main.c(如果不加后缀,就不会是.c文件),点击保存,而后Text1文件就变成了main.c文件。
2023-09-26 21:08:17
232
1
原创 嵌入式Linux开发基础一 ——(Ubuntu系统使用gcc和Makefile编译C程序)
本次在ubuntu系统上进行对c语言的编写,学会了并且使用两种方法:gcc和makefile进行编写的程序进行两种不同的生成可执行文件的方式编译。通过这次实验,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面 还提高了自我动手做项目的潜力。本次实验,是对我潜力的进一步锻炼,也是一种考验。从中获得的诸多收获,是很可贵的,是十分有好处的。在实验中我学到了许多新的知识。如gcc的四个阶段:预处理、编译、汇编和链接。
2023-09-15 17:42:36
81
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人