在开发实际应用系统时,我们经常需要考虑数据的实时性和多任务,嵌入式实时操作系统的出现为实现这一目的提供了很好的助力.FreeRTOS是近年来比较流行的嵌入式实时操作系统,而且是开源免费的,STM32CubeMX对它也提供了支持.我们可以使用STM32CubeMX很方便的添加上FreeRTOS,只需要在配置界面找到“MiddleWares”并将其下的FreeRTOS选为“Enable”就可添加上FreeRTOS: 配置完成后,更新源码就会在软件中添加上FreeRTOS的相关文件,各文件的功能网上已…
前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流:偶尔卡顿,延迟看不出    使用vlc软件播放局域网rtsp1080p海康摄像头:演示2s,不存在马赛克    使用vlc软件播放网络rtsp文件流:不卡顿,延迟看不出     FFmpeg基本播放流程 ffmpeg解码流程   ffmpeg新增API的解码执行流程.  新api解码基本流程如下:…
前面介绍的文件I/O,不管是写入文本还是写入对象,文件中的数据基本是原来的模样,用记事本之类的文本编辑软件都能浏览个大概.这么存储数据,要说方便确实方便,只是不够经济划算,原因有二:其一,写入的数据可能存在大量重复的信息,但依原样写到文件的话,无疑保留了不少冗余数据,造成空间浪费:其二,写入的数据多以明文方式保存,容易产生信息泄露,安全性不高.为此Java提供了简单的压缩和解压工具,在将数据写入文件之前,先对数据进行压缩,再将压缩后的结果写到文件:同样读取压缩文件之时,先读出已压缩的数据,再将这…
前面介绍了线程的基本用法,按理说足够一般的场合使用了,只是每次开辟新线程,都得单独定义专门的线程类,着实开销不小.注意到新线程内部真正需要开发者重写的仅有run方法,其实就是一段代码块,分线程启动之后也单单执行该代码段而已.因而完全可以把这段代码抽出来,把它定义为类似方法的一串任务代码,这样能够像调用公共方法一样多次调用这段代码,也就无需另外定义新的线程类,只需命令已有的Thread去执行该代码段就好了.在Java中定义某个代码段,则要借助于接口Runnable,它是个函数式接口,唯一需要实现的…
因实际使用需求我们测试一下网络通讯,在NUCLEO-F412ZG测试板上没有以太网部分,我们选择外接一个W5500的实验板.W5500支持SPI接口通讯,DC3.3V供源.而NUCLEO-F412ZG测试板已经将SPI1的各引脚SPI1_NSS(CN7_17).SPI1_SCK(CN7_10).SPI1_MISO(CN7_12).SPI1_MOSI(CN7_14)引出到CN7,3.3VDC和GND也引导了CN8,可以方便的实现测试.如下图红框所示: 1.测试的准备工作 为了实现以太网通讯首先需要…
今天终于收到了期待已久的NUCLEO-F412ZG,感谢电子发烧友论坛! 近几年来基本都是在STM32平台上做一些设计开发工作.STM32F103.STM32F107.STM32F429等都应用过,但却从没有申请过试用.没想到这次申请居然能被选中,还是很兴奋的.闲话不说,先来欣赏一下: 首先来一个带包装的正面照: 一如既往的ST的风格,白色的版面,中规中矩的布局,带ST-LINK.再来一张带外套的背面照: 打开包装再来张不带外套的正面照: 板上的元器件不多,除去ST-LINK部分,目测应该没有实…
本次我们在NUCLEO-F412ZG试验模拟量输入采集.我们的模拟量输入采用ADI公司的AD7705,是一片16位两路差分输入的AD采集芯片.具有SPI接口,我们将采用SPI接口与AD7705通讯.两路输入一路接氧气传感器,一路接氢气传感器. 氧气传感器有两种,一种是顺磁氧气传感器,输出信号是4-20mA.所以须在输出端并一个250欧姆的电阻然后接到AD7705的采集小板上.灰色的线和白色的线分别是正负极.其样式如下: 另一种氧气传感器是电化学方式的,由于电化学传感器输出为毫伏信号(0-60mV…
NUCLEO-F412ZG板子上的元器件并没有完全焊接,除去ST-LINK部分和电源部分后,还有用一个USB主机接口,三个LED灯和两个按钮,不过很多功能引脚都已经引到了插针.查看原理图可发现,由原理图模块的5大部分与电源部分组成,即连接端子.ST-LINK.MCU.USB.以太网和电源部分. 电源部分考虑的非常充分,5V有三路输入,一路是有外部输入6-15VDC电源经U5(LD1117S50TR)转为5VDC电源:第二路是USB端口提供的5V电源,同时还有电流限制保护U4(ST890CDR):…
前面我们已经完成了Modbus协议栈的开发,但这不是我们的目的.我们开发它的目的当然是要使用它来解决我们的实际问题.接下来我们就使用刚开发的Modbus协议栈开发一个Modbus TCP Server应用. 开发Modbus TCP Server首先需要有TCP Server的支持以及网络的配置等,但这些与Modbus本身没有什么关系,我们再次不作讨论.我们规定网络和TCP Server已经配置妥当.接下来我们讨论Modbus TCP Server的实现过程. 根据前面对协议栈的封装,我们需要引…
本次将NUCLEO-F412ZG应用于我们的多组分气体分析仪的实现试验,从整体上测试实际项目的应用情况. 一.项目概述 多组分气体分析仪是我公司近期研发的三个主要产品之一.采用模块化设计,可增减配置,可分析混合气体中的氧气.氢气.甲烷.丙烷等气体的组分.氧气可以采用顺磁氧传感器.电化学氧传感器两种:氢气传感器可采用热式氢气传感器:炭氢传感器采用远红外气体传感,可探测甲烷和丙烷.气体组分的分析要求能够快速反应,运行稳定,对硬件的要求比较高. 二.硬件设计 在硬件方面充分考虑系统应用的需求,AD采集…