- 博客(258)
- 资源 (146)
- 问答 (2)
- 收藏
- 关注
原创 基于C#和RFID的智能咖啡厅系统设计与实现
使用了数据库、C#、物联网仿真,环境监测。本项目通过使用C#(VS2019)+物联网虚拟仿真实验平台实现物联网的智能咖啡馆项目。实现的功能有账号密码比对(使用数据库),预警拍照,实时监测温湿度、烟雾等环境数据、无线控制设备风扇、加湿器、LED等装置,智能控制餐厅、RFID卡识别,会员卡消费充值、无线通信点单(局域网)、会员信息增删改查等功能。
2022-05-27 16:46:06 2809 2
原创 基于指纹解锁、RFID解锁、APP解锁等功能的智能防盗门
在现如今、智能防盗门的安全化和智能化越来越重要。智能防盗门普遍应用于智能家居生活中,集安全性和智能化于一身。。在本文中,我详细讲解了怎样利用传感器、模块、开发板制作一款智能防盗门。并且放置了重要程序代码,是非常重要详细的一篇项目讲解文章。本项目是我编写的一个重要的设计,难点以及解决方式都在文章里解决,是我一个月的成果,为了分享,写成一篇文章进行展示
2020-09-29 17:29:31 1690 2
原创 物联网智能家居项目---智能卧室
智能卧室介绍设计需求功能介绍准备软件准备硬件准备项目制作库文件调用和变量定义超声波测距函数初始化变量赋值和LCD显示屏显示温湿度功能实现后续介绍设计需求为了提高用户生活品质,改善睡眠质量差人群的睡眠质量,推动智能化生活,解决当今社会生活压力大对睡眠环境的要求高的问题。在智能家居领域中,智能卧室睡眠环境装置可以很好的对睡眠环境出现的多种情况都做出相应反应,增加卧室的智能、舒适、安全。功能介绍本项目是我为一个物联网比赛制作的智能家居项目。主要的功能为:自动感应卧室的温度和湿度并通过LCD1602显
2020-08-13 10:19:43 3937 5
原创 利用LCD1602显示超声波测距
介绍一、需要的器件二、原理工程代码一、 LCD1602二、超声波测距及主程序。。。。。。 XianShi[4]=dis%10;//厘米的小数点后一位 XianShi[5]=11;//显示‘C’ XianShi[6]=12;//显示'M' Lcd1602_init(); //初始化函数 Lcd1602_WriteCom(0x80); //0x80是第一行的第一个字符的地址 。。。。。。
2020-04-11 12:17:46 4250 8
原创 基于Arduino的环境监测装置
本项目使用机智云Gokit2.0开发板,实现基于Arduino的环境监测装置,解决目前大多数人对环境数据要求逐渐增高的痛点。
2024-10-16 16:13:26 611
原创 【PSoC 6 RTT积木式开发套件】+基于RT-Thread的NBIOT设备上云
开发板基于RT-Thread实现基于NB-IOT通信的设备上云,将设备的数据上传到阿里云物联网平台上,可以进行数据观测。
2024-10-15 15:37:55 831
原创 使用RT-Thread Studio创建STM32项目
实时性:RT-Thread是一个实时操作系统,具有确定的任务调度机制和中断处理能力,能够在严格的时间约束下响应和处理事件,满足实时应用的需求。模块化和可裁剪性:RT-Thread采用组件化设计,系统内核、文件系统、网络协议栈、图形用户界面(GUI)等各个模块可以独立选择和裁剪,用户可以根据具体需求定制系统,从而减少资源占用,提高运行效率。跨平台支持:RT-Thread支持多种硬件平台和架构,包括ARM Cortex-M系列、RISC-V、x86、MIPS等,具有很好的移植性和兼容性。
2024-06-20 16:30:47 764
原创 查找子串在主串的什么位置
在程序开发的过程中,尤其是嵌入式开发中,我们常常需要查找某字符串在一个字符数组的第几个字节出现的,本文将介绍如何用程序实现它。
2024-06-14 10:43:07 631
原创 在VSCode中安装python
Python 是一种广泛使用的高级编程语言,因其易学、易用、强大而受到欢迎。它由 Guido van Rossum 于 1991 年首次发布,并以简洁的语法和丰富的库生态系统而著称
2024-06-05 13:24:24 1201
原创 DSP使用串口收发
DSP 包含了多个 SCI 模块,每个 SCI 模块都能独立地进行串口数据的收发。SCI 模块提供了灵活的配置选项,可适应不同的串口通信需求。通过配置 SCI 模块,可以实现串口通信的波特率、数据位、停止位、校验位等参数的设置。
2024-04-09 16:53:52 1669
原创 STM32使用标准版RT-Thread,移植bsp中的板文件后,想使用I/O设备模型,使用串口3或者串口4收发时,发现串口3或者串口4没反应
使用标准版RT-Thread,移植bsp中的板文件后,想使用I/O设备模型,使用串口3或者串口4收发时,发现串口3或者串口4没反应。出现问题:程序一直跑在。移植过程中,本身带的stm32f1xx_hal_map.c文件中,只有初始化串口1和串口2的程序,没有初始化串口3和串口4的程序。在HAL_UART_MspInit()和HAL_UART_MspDeInit中添加我们使用的串口配置信息。在HAL_UART_MspDeInit(UART_HandleTypeDef* huart)中添加。
2024-04-09 16:52:57 482
原创 DSP报错#10099-D</a> program will not fit into available memory
跳板生成问题:错误消息中提到的"trampoline"指的是一个跳板,用于在代码段中调用另一个代码段。节的排列和对齐:.cinit节可能要求的对齐或者分配方式与可用内存不匹配。你可以尝试调整.cinit节的放置或对齐方式,以使其符合可用内存的要求。这可能是由于代码或数据量增加导致的。你可以尝试优化代码以减小程序的大小,或者寻找更大的内存容量。调整节的排列和对齐方式:尝试调整.cinit节的放置和对齐方式,使其符合可用内存的要求。增加内存容量:如果可能的话,考虑增加目标设备的内存容量,以容纳程序的大小。
2024-04-09 13:46:01 2032
原创 NB-IOT——浅谈NB-IOT及模块测试
NB-IoT,即窄带物联网(Narrowband Internet of Things),是一种低功耗广域物联网(LPWAN)技术,旨在连接大量的低功耗设备到互联网。它是3GPP(第三代合作伙伴计划)制定的标准之一,专门设计用于支持物联网设备的连接,如传感器、计量设备和其他远程监测设备等。NB-IoT在设计上注重低功耗、广覆盖和大规模连接。它使用了窄带信道,传输速率较低,但具有更好的穿透能力,能够穿透深度建筑物和地下结构。
2024-03-29 10:41:39 1481
原创 HarmonyOS开发:基于IIC的OLED多种显示
本文主要介绍如何在 OpenHarmony3.2的基础上开发IIC接口的OLED显示屏的不同显示效果。目前网络上有关鸿蒙嵌入式方面的参考文章比较少,大多为HarmonyOS 1.0的版本(其中就有作者的一篇),现在随着HarmonyOS的逐渐发展壮大,稳定版本的OpenHarmony已经到了OpenHarmony 3.2,很多以前的API已经不再适用,所以本文将详细介绍如何开发基于 OpenHarmony3.2的IIC接口的OLED显示。
2023-12-21 14:01:08 1279
原创 搭建HarmonyOS开发环境(OpenHarmony3.2)
目前HarmonyOS的热度愈演愈烈,本文将介绍如何搭建HarmonyOS嵌入式开发环境,帮助想要使用HarmonyOS进行嵌入式开发的人员进行入门。其实博主以前已经介绍过如何搭建HarmonyOS开发环境了,但是当时还是HarmonyOS1.0,目前开源版本,OpenHarmony已经更新到OpenHarmony3.2了,开发也相比于以前要方便得多,所以本文来介绍如何搭载最新的HarmonyOS嵌入式开发环境。
2023-12-19 16:52:13 1528
原创 DSP串口收发,通信中断后,不能重连的问题及解决(TMS320F28379D)
介绍DSP串口收发,通信中断后,不能重连的问题及解决(TMS320F28379D)
2023-12-07 10:55:57 1435
原创 STM32在进行CAN总线多节点通信时,同时发数据会一直收不到某设备数据的问题及解决
最近在开发Canopen项目中,进行一主多从设备通信时,主站发送同步帧,两个从站往往只有帧ID优先级高的设备可以让主站接收到数据,而另一个从设备的数据往往接收不到。总的来说,CAN总线的冲突机制通过使用非破坏性的仲裁和标识符比较,以及回退机制,确保了多个节点之间的有序通信,使得总线上的消息能够按照优先级顺序进行传输。遇到CAN总线冲突时,受阻的CAN从设备进行自动回传是我们需要的。在CAN多机通信中,两个设备同时发送数据,帧ID优先级高的CAN设备会“抢占”总线,而另外的设备需要选择冲突解决策略。
2023-11-21 14:39:01 3531
原创 在Linux上实现ECAT主站
EtherCAT由一个主站设备和多个从站设备组成。主站设备使用标准的以太网控制器,具有良好的兼容性,任何具有网络接口卡的计算机和具有以太网控制的嵌入式设备都可以作为EtherCAT的主站。本文介绍如何在Linux上通过SOEM协议栈实现ECAT主站。
2023-10-25 17:07:07 1581 1
原创 嵌入式Linux编译C/C++的几种方式
GCC 编译器是 Linux 系统下最常用的 C/C++ 编译器,大部分 Linux 发行版中都会默认安装。GCC 编译器通常以gcc命令的形式在终端(Shell)中使用。GCC最初代表“GNU C Compiler”,当时只支持C语言。后来又扩展能够支持更多编程语言,包括 C++、Fortran 和 Java 等。因此,GCC也被重新定义为“GNU Compiler Collection”,成为历史上最优秀的编译器, 其执行效率与一般的编译器相比平均效率要高 20%~30%。
2023-10-24 16:19:23 491
原创 【EtherCAT】二、下载并使用TwinCAT
TwinCAT是一款由德国Beckhoff Automation开发的工业自动化控制软件。它被广泛用于工厂自动化、过程控制、机器控制以及其他自动化领域。而这里我们主要使用TwinCAT模拟ECAT主站。本文将介绍如何下载安装TwinCAT,并建立工程,充当ECAT主站。
2023-10-23 10:46:40 1546
原创 基于python的多种图像增强算法实现
本项目使用python实现多种空域增强的图像增强算法,并使用了pyqt编写页面。通过点击不同页面的多种按钮,分别使用高斯滤波、中值滤波、双边滤波、均值滤波、直方图均衡化、叠加和锐化等不同算法对图像进行图像增强。实现一个完整的图像增强设计。
2023-10-15 22:49:19 411
原创 Code Composer Studio(CCS)安装及配置
目前常用的MCU主要有两大类,ARM和DSP,其中DSP的众多厂商中,TI(德州仪器)为DSP 芯片领域的重要领导者之一。CCS是一款针对德州仪器(TI)处理器和微控制器的集成开发环境(IDE)软件。CCS 为开发者提供了一套完整的工具和功能,用于编写、调试和优化嵌入式应用程序。本文将介绍如何安装并且配置常用的库,为后续开发进行前期准备。
2023-08-30 15:47:11 4397
原创 STM32使用定时器实现微秒(us)级延时
目前开发STM32普遍使用HAL库,但 HAL 库封装的延时函数目前仅支持 ms 级别的延时,日常很多情况下会用到 us 延时,特别是一些传感器的数据读取过程,对时序要求比较严格,us 延时必不可少,因此我们今天来介绍STM32如何使用定时器实现微秒(us)级延时。
2023-08-21 17:52:51 2967
原创 SPI协议解析
SPI是串行外设接口的缩写,是一种高速的,全双工,同步的通信总线。由于SPI高速和同步的特性,使其成为嵌入式系统和小型设备中使用最广泛的几种通信接口之一。本文将详细讲解一下SPI,并且最后基于STM32编写一个例程。
2023-06-20 14:41:22 873
原创 STM32之HAL、LL和标准库
我们在进行STM32开发的时候,使用寄存器进行开发的终究是少数,大多数人还是习惯用库函数进行开发。到目前为止,有标准外设库、HAL库、LL库 三种。本文将分别介绍以下三种库,便于大家区分。
2023-06-15 16:41:40 6897 1
原创 【EtherCAT】一、入门基础
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能。
2023-06-09 15:15:45 12144
原创 STM32使用HAL库,串口收发一段时间后出错问题及解决
当STM32使用HAL库进行开发时,偶尔会遇到串口收发数据量大时,会出现问题。时,可以看到,此函数的源码中,也有上锁和解锁,而且还是和UART_Start_Receive_IT控制的是一个锁!问题的原因锁定在, STM32 HAL库在处理接收的时候会锁一下串口一会,导致变成某个短时间的“半双工”,这个时候如果同时收发就会出现问题。明明STM32的串口通信是全双工的,但使用HAL库的STM32串口收发时发现,数据量大时,同时收发会出现问题。当数据量过大且传输频率快时,串口可能会因为溢出,而不进入串口中断。
2023-06-02 11:17:06 5336
原创 下载安装LabVIEW
LabVIEW 是 工程 师 用来 开发 自动 化 研究、 验证 和 生产 测试 系统 的 图形 化 编 程 环境。Labview作为图形化编程语言,图形控件拖拽式编程,显得更加直观形象,也很容易上手学习。LabVIEW是一种数据流编程语言,旨在简化科学和工程应用程序的开发。它广泛应用于控制、测试、测量和监控领域。LabVIEW提供了一个直观的图形化用户界面(GUI),通过将函数和算法表示为图形化的块(称为虚拟仪器或VIs),使用户能够通过连接这些块来创建程序。
2023-05-30 11:04:50 2580
原创 基于STM32的定时器--定时中断(HAL库)
本文旨在介绍如何使用STM32CubeMX配置+KEIL 5开发一个每10us定时器中断触发一次的项目。帮助初学者入门STM32的定时器使用。
2023-05-28 15:31:38 5427
原创 基于STM32的CANopen通信项目(具备FreeRTOS)
本文介绍如何使用STM32移植CANopen协议,实现数据收发。不仅详细介绍移植过程而且介绍如何配置数据字典并怎么进行PDO和SDO的传输。设置STM32为canopen的从站,用另一MCU当主站,进行sdo和pdo的收发。主站按下按键1、2或3,更改变量SDO的值,发送给从站不同的SDO,从站根据接收的SDO变化对应LED的状态。从站按下按键1、2或3,修改变量PDO不同的值。当接收到主站发送的同步帧时,从站发送PDO,主站根据接收到的PDO值的不同,变化对应的LED的状态。
2023-05-18 16:12:47 2663
原创 嵌入式开发必备知识
我们在调试程序时,经常会遇到某段功能的实现,写了两种版本的程序,但调试时又不想来回切换。,这时候我们可以使用条件变量。比如:想测试__set_FAULTMASK(1);和__disable_fault_irq();的区别,就可以使用如下方式,只需要更改#if后面是1还是0就可以选择是使用哪段程序。# endif1# endif串口(UART通用异步收发器,TTL)通讯是一种设备间的串行全双工通讯方式。
2023-04-12 16:04:56 3744
原创 RT-Thread必备知识
首先我们看一下创建线程的函数定义。最后一个参数tick即是线程的时间片大小。时间片(tick)的单位是操作系统的时钟节拍。当系统中存在相同优先级线程时,这个参数指定线程一次调度能够运行的最大时间长度。这个时间片运行结束时,调度器自动选择下一个就绪态的同优先级线程进行运行我们在使用的时候,所以可以看出tick只对存在同级优先级的情况下生效,所以如果遇到有的线程时间片是0就不需要以外了,因为很可能是因为没有相同优先级,所以不需要定义时间片,而不是每次运行时间为0.
2023-04-12 16:00:55 337
原创 使用STM32CubeMX生成STM32工程
随着技术发展的越来越成熟,单片机开发已经出现越来越多好用的开发软件了。STM32CubeMX是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理生成相应的初始化C代码。可以对STM32开发提供很大的便捷。本文将介绍如何使用STM32CubeMX生成一个简单的STM32工程,为以后的开发奠定基础。
2023-01-11 16:39:15 913
原创 修改Keil开发环境背景(修改为黑色主题)
我们平时在Keil uVision5下开发单片机/嵌入式程序的时候,如果始终用的是官方的主题背景,往往会因为背景太白了,而导致视疲劳。我们使用VSCode往往不会有这种困扰,因为黑色开发背景,不会让我们这么容易视疲劳。本文将逐步讲解如何修改Keil uVision5主题背景,变成黑色的主题。
2023-01-09 10:16:07 11357 1
原创 移植FreeRTOS到STM32
本文详细介绍如何移植FreeRTOS到STM32单片机上。移植操作系统是嵌入式开发的入门基础,单片机和嵌入式在物理上其实是一摸一样的,区别就是软件上嵌入式跑了操作系统而单片机没有。文本选用市场上最常见的STM32和FreeRTOS,为大家介绍如何移植操作系统到MCU上。
2022-12-30 12:48:29 5198 2
原创 基于STM32和超声波测距传感器的测距功能设计
最近和很多单片机和嵌入式的初学者交流,发现大家对使用一个没接触过的传感器往往感到无从下手。正好我最近使用一款我以前没使用过的超声波测距传感器开发新的功能,这里就来逐步详细的介绍如何使用一款陌生的传感器。大家在项目开发中,如果使用陌生传感器没有思路,可以仔细看一下本文。可以说,几乎使用所有的传感器,往往开发流程大同小异,所以阅读本文其实就可以对开发有一个清晰的认识。
2022-12-27 17:55:39 3965
原创 基于STM32的串口收发讲解(标准库)
串口(UART通用异步收发器,TTL)通讯是一种设备间的串行全双工通讯方式。由于UART是异步传输,没有传输同步时钟,为了保证数据的正确性,UART采用16倍数据波特率的时钟进行采样。因为它简便捷,因此大部分电子设备都支持该通讯方式工程师在调试设备时也经常使用该方式输出调试信息。本文详细的介绍如何来编写一个串口收发程序,我们采用常用的收发逻辑,发送直接编写函数进行实现,而接收使用中断进行完成。接收中断使用接收到一个字节和一帧数据两种中断触发方式。
2022-10-27 10:42:31 5562 1
原创 基于STM32与FreeRTOS的消息传递详解(HAL库)
我们在裸机开发中,每个函数之间进行数据通信往往采用全局变量。而在嵌入式开发中。我们在进行进程间通信的时候,往往采用消息队列。对于操作系统来说,消息队列是非常重要的一个数据结构。本文将介绍一下,如何使用消息队列进行通信。
2022-10-24 15:46:10 3527
电赛资料汇总(包含源码、文档、数据手册和历年参考)
2024-06-21
DevEco Device Tool
2023-12-20
SSC从站协议栈代码工具
2023-06-09
基于STM32的ANopen通信(3个源码,一主两从实现互相通信(SDO和PDO),并都移植了FreeRTOS)
2023-05-17
基于STM32的CANOpen通信
2023-05-12
CANopen对象字典安装环境
2023-05-12
CANopen协议栈源码
2023-05-12
修改Keil开发环境背景(修改为黑色主题)的配置文件
2023-01-06
FreeRTOS源码(最新)
2022-12-30
基于STM32的IAP升级程序
2022-11-10
STM32CUBEMX安装包
2022-08-12
Xshell免费版安装文件
2022-07-29
进制转换-不同位数的数据相互转换(C/C++实现)
2022-07-08
可以用来检测指定文件的MD5校验值,并且也可以MD5解密,MD5转换等功能的软件。
2022-06-17
基于STM32的MD5检验完整工程
2022-06-17
基于STM32的电机转速测试
2022-06-11
618自动刷电商活动手机软件
2022-06-05
指纹模块上位机测试软件
2022-06-01
网络调试软件---可用来局域网控制、IP检测
2022-05-28
ESP8266/32系列资料
2022-05-28
智能咖啡厅系统设计与实现
2022-05-27
基于STM32的IAP升级程序(Bootloader)
2022-05-26
基于STM32的MD5参考程序
2022-05-26
Git(开源的分布式版本控制系统)最新版安装包
2022-05-09
stm32+esp8266实现局域网下小灯控制源码
2022-04-20
ADB 最新版 正版安装包
2022-03-14
CANopen使用SDO时出现错误
2023-05-09
如何解决STM32在擦除Flash某几页后,导致的看门狗卡住的问题
2022-06-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人