主要提供STM32 基于nano版本的-RT-thread操作系统基础上对LWIP协议栈进行移植,并实现网络通讯功能,提供源码以及测试例程,以及说明文档
2024-04-13 21:21:04 22.94MB stm32
1
探索者 STM32F407 是正点原子推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 168Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32F407 的芯片性能。本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。MCU:STM32F407ZGT6,主频 168MHz,1024KB FLASH ,192KB RAM,本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
2024-03-27 13:52:23 59.06MB stm32 STM32F407
1
作者:zhouyuanzhi 作品概述 农作物的生长状况与其周边环境是息息相关的,对农业环境进行实时监控,及时调整有关环境参数,能够有力促进农作物增产增收。基于WSN的农作物环境监测系统将结合现代生态农业技术、现代无线传感技术、水肥药一体化技术等先进技术,来采集、传输、存储、查询并分析农作物的环境信息,为农业生产提供科学指导。 开发环境 硬件:STM32F407,CC2530,Fibocom L610,BH1750光照强度传感器,DHT11温湿度传感器,土壤PH传感器,土壤温湿度氮磷钾传感器。 RT-Thread版本:RT-Thread Nano 3.1.3 开发工具及版本:MDK 5.27,STM32CubeMx RT-Thread使用情况概述 内核部分:调度器,信号量,线程。 调度器:创建多个线程来实现不同的工作。 线程:uart2_rx_thread_entry和led_thread_entry uart2_rx_thread_entry线程接收到串口2中断回调函数释放的信号量后,对数据进行整理并上传至阿里云;led_thread_entry线程使LED间隔1秒闪烁,提示系统正在运行。 系统硬件介绍 系统由终端节点、路由器节点、协调器节点、STM32F407通讯网关、云服务器四部分组成。终端节点以CC2530为核心通过传感器采集空气温湿度、光照强度、土壤温湿度、土壤氮磷钾含量以及土壤PH值数据信息并通过ZigBee协议传输数据到路由器,再经路由器转发至协调器,协调器接收到数据后通过串口把数据转发给STM32F407通讯网关,STM32F407通讯网关完成数据汇总,解析,打包,在LCD上显示采集到数据,并通过GPRS上传数据至阿里云IOT平台,阿里云IOT平台将数据包通过AMQP服务端订阅转发到智慧农业系统。系统整体结构图如图所示。 系统软件介绍 硬件端采集到所有环境数据后,按照协议将所有数据封装成包。并将这些数据包上传到阿里云IOT平台。上传到服务器时采用的协议是MQTT协议;阿里云IOT平台将数据包通过AMQP服务端订阅转发到智慧农业系统的后端服务器;智慧农业系统的后端服务器按照规则完成数据包的解析,并将解析出的环境数据存入MySql数据库中;后端将数据从数据库中取出发送到前端并在网页上显示所有环境数据。 演示效果 采集终端: 路由器和协调器: 网关: 数据采集和上传: 代码地址(附件为代码地址,下载后打开可见)
2024-03-22 15:19:56 1.3MB rt-thread 电路方案
1
RT-Thread编程指南 中文版 本书是RT-Thread的编程手册,用于指导在RT-Thread实时操作系统环境下如何进行编程。
2024-03-18 11:25:10 2.05MB rt-thread
1
Delphi Thread-Gui(国外的一个DELPHI多线程示例).
2024-03-01 19:04:45 6KB Delphi Thread-Gui
1
上传项目不支持Firefox,提示代码附件太大(1.4M),我写了30多分钟的描述全没了,太坑爹了。 10分有点贵,绝对原创,共2个代码文件300多行,下载请谨慎。你下载了,若绝对不爽在评论中说出来,不要让其他同学上当,如果觉得还可以也请留言。 代码采用多工作者多线程执行任务。通过暴露的方法往工作者传递消息,然后采用事件回调返回处理结果,实现的事件有OnThreadComplete,OnAddedTask,OnStart,OnSuccess,OnFailure,OnTimeout。 事件回调支持同步或异步,每工作者可以指定执行超时时间,避免线程阻塞死掉。队列采用线程安全的BlockingCollection,每组工作者用一个队列。委托采用Func来定义的,没有采用传统且不太好理解的Delegate。这让代码减少很多,也更容易理解。多线程应该采用消息中心来交换数据,这样就规避了线程同步交互,等待,阻塞等等,全部是异步调用,全部是接收消息工作,然后产生消息,线程间没有耦合,消息中心有很多成熟的方案如RabbitMQ, Redis(里面有简单的消息交换),微软有消息云服务等。如果应用不复杂,可以采用DB做个简单的消息中心,建议采用HTTP接口来获取与写入消息,方便将来升级重构消息中心。 开发环境VS2012,Framework4.0,代码注释量很大,如果你高兴这代码你可以随意蹂躏,如果你有建设性意见请告诉我。 下面是部分测试代码: //发送消息方法容器 var msgContainer = new Hashtable(); //创建并启动工作者 foreach (var key in workers.Keys) { //创建工作者 //启动5个线程,异步事件回调,方法执行20秒超时,程序跑起来有100个线程,由于引入超时控制,实际线程将达100+50 //下面的20个工作组,有5个是超时的,主要测试OnTimeout事件,你可以设置seleep的时间来控制 //我把sleep的时间设置的有点长,方便你测试 //测试的时候你会看见有异常,那是应为Timeout我采用的是Thread.Abort方法,这样才出发了ontimeout事件 var worker = new Sehui.Worker(5, key.ToString(), (Func)workers[key], false, new TimeSpan(0, 0, 20)); worker.OnStart += worker_OnEvent; worker.OnSuccess += worker_OnEvent; worker.OnFailure += worker_OnEvent; worker.OnTimeout += worker_OnEvent; //启动工作者 worker.Start(); //将增加消息方法放到Hashtable中 //这里我是偷懒,下面可以用循环的方式往线程中add message msgContainer.Add(key.ToString(), new Func(worker.AddTask)); } //向20个工作者发送消息,每个工作者发送20条消息 for (var i = 0; i < 20; i++) { for (var k = 0; k < 20; k++) { ((Func)msgContainer["SyncDb" + k])("[Work " + k + "] Message " + i); Console.WriteLine("send msg to worker{0},msgid:{1}", k, i); } }
2024-01-25 05:05:28 1.56MB Thread Func Delegate 异步事件
1
OTA下载器 | 英语 1.简介 该软件包是用于OTA升级的固件下载器。 下载器提供了多种固件下载方法。 开发人员可以根据自己的需求灵活选择升级方式。 每个升级方法只需要调用一次函数或命令。 当前支持的下载方法如下: HTTP / HTTPS协议下载固件 Ymodem协议下载固件 1.1许可证 OTA Downloader软件包符合Apache2.0许可证,有关详细信息,请参阅LICENSE文件。 1.2依赖 RT线程3.0+ FAL软件包支持 Ymodem下载方法取决于Ymodem组件 HTTP / HTTPS下载方法取决于webclient软件包 2.如何打开OTA下载器 要使用OTA下载程序包,您需要在RT-Thread的包管理器中选择它。 具体路径如下: RT-Thread online packages IoT-internet of things --->
2024-01-20 11:50:14 977KB downloader
1
BackgroundWorker组件和Thread更新UI界面对比
2024-01-13 22:49:57 46KB BackgroundWorker Thread更新UI界面
1
java并发库thread使用,传统线程技术、定时器技术、线程互斥技术,同步通讯技术、多线程共享数据、并发库应用,线程锁技术,阻塞锁、阻塞队列,线程池等应用
2023-12-27 07:02:09 78KB java Thread
1
Java线程-第三版(CHM电子版)
2023-12-16 07:01:29 669KB java multithreading thread 线程
1