transmit

外设驱动库开发笔记11:SHT3x系列温湿度传感器驱动

泄露秘密 提交于 2020-08-04 11:11:16
在我们的产品中经常会遇到温湿度检测的需求。可以用于检测温湿度的传感器元件也有很多。我们经常使用的 SHT 各系列数字温湿度传感器来实现应用需求。在这里我们将设计并实现 SHT3x 系列温湿度传感器的驱动。 1 、功能概述 SHT3x 系列温湿度传感器是适用于各种应用的高品质湿度传感器。 SHT3x 温湿度传感器系列结合了多种功能和各种接口适合各类应用。 1.1 、硬件描述 SHT3x 建立在全新和优化的 CMOSens® 芯片 之上,进一步提高了产品可靠性和精度规格。 SHT3x 提供了一系列新功能,如增强信号处理、两个独特和用户可选 I2C 地址、一个可编程温湿度极限的报警模式,以及高达 1 MHz 的通信速度。 SHT3x 系列温湿度传感器的引脚排布及说明如下图所示: SHT3x 系列温湿度传感器适用于 2.15 至 5.5 V 的宽电源电压范围。电源插脚必须与一个 100nf 电容解耦,该电容应尽可能靠近传感器。 SCL 和 SDA 线都是开放式 I/O ,带有到 VDD 和 VSS 的二极管。它们应该连接到外部上拉电阻。 I2C 总线上的设备必须只驱动线路到地面。外部上拉电阻必须把信号高。上拉电阻可能包括在微控制器的 I/O 电路中。 SHT3x 系列温湿度传感器接线方式如下图: SCL 用于同步微控制器与传感器之间的通信。时钟频率可以自由选择在 0 到 1000 千赫之间

Linux环境下,网络编程基础概念(仅学习笔记)

你离开我真会死。 提交于 2020-07-28 17:21:43
网络编程 进程间通讯IPC各种手段,都是在同一台机器上。 不同计算机通过网络链接上进程相互通讯的机制:网络进程间通讯 network IPC 1)Internet的历史 Internet-“冷战”的产物 1957年10月和11月,前苏联先后有两颗“Sputnik”卫星上天 1958年美国总统艾森豪威尔向美国国会提出建立DARPA (Defense Advanced Research Project Agency),即国防部高级研究计划署,简称ARPA 1968年6月DARPA提出“资源共享计算机网络” (Resource Sharing Computer Networks), 目的在 于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet,即“阿帕网”,是Interne的最早雏形 早期的ARPAnet使用网络控制协议(Network Control Protocol,NCP),不能互联不同类型的计算 机和不同类型的操作系统, 没有纠错功能 1973年由 Robert Kahn 和Vinton Cerf两人合作为ARPAnet开发了新的互联协议。 1974年12月两人正式发表第一份TCP协议详细说明,但此协议在有数据包丢失时不能有效的纠正 TCP协议分成了两个不同的协议: 用来检测网络传输中差错的传输控制协议TCP 专门负责对不同网络进行互联的互联网协议IP 从此,TCP

Linux多网卡绑定(bond)及网络组(team)

喜欢而已 提交于 2020-05-08 07:45:21
Linux多网卡绑定(bond)及网络组(team)   很多时候,由于生产环境业务的特殊需求,我们需要对服务器的物理网卡实施特殊的配置,从而来满足不同业务场景下对服务器网络的特殊性要求。如高并发的网络IO型业务,需要高速的网络IO,即对网卡的收收发包处理能力及网卡最大带宽速度等性能指标提出了更高的要求;事务处理型的系统,如金融交易系统、电商平台等,对物理网络线路、网卡等物理设备的稳定可靠性提出了更高的要求。   Linux系统中,可以通过多网卡绑定(bonding)和网络组(team)等技术,通过软件的方式来实现,来满足不同业务场景下的各种特殊需求。 Linux多网卡绑定(bond) bond基本原理   bond技术是将多块物理网卡绑定同一IP地址对外提供服务,通过不同的模式配置,从而达到高可用、负载均衡及链路冗余等效果。我们知道,两块物理网卡是不可以直接配置同一个IP地址的,多网卡bond技术的基本原理就是通过虚拟出一块逻辑网卡对外提供网络连接。 bond基本工作原理如下图: bond七种工作模式及特性详解   bond技术提供了(0-6)共7种工作模式,分别如下: mode=0 round-robin轮询策略(balance-rr) mode=1 active-backup主备策略(active-backup) mode=2 load balancing (xor)异或策略

Linux多网卡bond模式VS交换机链路聚合

断了今生、忘了曾经 提交于 2020-05-08 06:28:13
专注网络运维,只发实用干货 您的关注是我更新的原动力 公众号与博主同人,感谢支持。 在数据中心内,当服务器流量太大或业务很重要,通常会采取多网卡绑定提高带宽和增强冗余性,而交换机上也需要做相应配置,保证服务器多线路接入能正常通信,常用的就是链路聚合技术。但是网络工程师经常会遇到配置好了交换机的链路聚合,而服务器还是不能正常通信的情况。服务器工程师往往不会关注网络问题,也不能给你有用的排错信息,这时候就需要网络工程师根据服务器网卡绑定模式来决定交换机的链路聚合该如何配置。虽然网工不必懂Linux,但谁让网络总是最后的背锅侠呢,so,只能让我们的锅底更厚一点。 bonding是linux内核自带的模块,它能将Linux系统的多个网卡绑定为一个逻辑端口,同时对外提供一个统一的IP地址,目前bonding模块的工作模式共有七种mode(0~6)。 linux七种bond模式说明: mode=0 ,(balance-rr) 轮询均衡模式 特点:传输数据包顺序是多个网卡轮询传输,可能会出现乱序数据包需要重传。服务器对外只有一个MAC地址,其物理网卡是没有MAC地址的,因此需要交换机做链路聚合,否则不知道要将数据包发送给哪个网卡。 mode=1, (active-backup)主备模式 特点:只有主网卡处于活动状态,当主网卡down备份网卡才会转为活动网卡。服务器对外只有一个活动网卡

基于visual studio 2017 以及cubemx 搭建stm32的开发环境(2)

血红的双手。 提交于 2020-05-08 02:15:15
主要解决 vs2017中,printf无法打印数据的问题。 在keil环境下正常使用printf功能,但是以下的重定向代码在vs2017下使用不了: #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ /* * * @brief Retargets the C library printf function to the USART. * @param None * @retval None */ PUTCHAR_PROTOTYPE { /* Place your implementation of fputc here */ /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */ HAL_UART

12款好用超赞的国外搜索资源网站 ,开发者们的标配,你都知道吗?不知道就OUT了

送分小仙女□ 提交于 2020-04-27 19:40:40
简介   看了 看了网上有好多推荐插件的文章,很少有推荐搜索资源网站,于是今天决定推荐一波搜索资源网站。这些网站帮助我开阔视眼、增长知识、解决问题。所以在这里整理一下,分享给朋友和博友们。 学习技术过程我们经常需要使用搜索引擎来检索资料,国内常用的也就是某度了。 当然有条件的话,搜索引擎首先还是推荐使用 Google,如果没办法使用,可以使用以下几个作为备用: ## 1.Bing Bing 国际版: https://cn.bing.com/ 比某度好用,之前还被停用了几天,最近可以了。分为国内版和国际版。 ## 2.DuckDuckGo DuckDuckGo: https://duckduckgo.com/ 从官网的介绍来看这个搜索引擎不收集用户信息,而且没有广告。 ## 3.Stack Overflow Stack Overflow: https://stackoverflow.com/ 我们如果常用 Google,很多技术问题的答案就在这个网站上,如果你无法使用 Google 可以在这个网站上直接检索就好了。 ## 4.Gitlogs Gitlogs: https://www.gitlogs.com/ Gitlogs 是专门针对 GitHub 项目的搜索引擎,我们通过他可以快速找到想要项目。 ## 5.jiumo search 文档搜索引擎 jiumo search 鸠摩搜书:

iTOP-4412开发板裸机开发环境文档分享

我的梦境 提交于 2020-04-27 06:32:22
迅为iTOP-4412开发板裸机开发环境文档分享 1. 安装 DNW 驱动 DNW 驱动在”tools/USB驱动/dnw_driver“目录下面,我们提供了 xp 系统, win732 位,win764 位三种系统下面的驱动。下面我们以 win7 64 位系统的驱动 为例来讲解一下 DNW驱动的安装。 首先使用串口线连接 iTOP-4412 开发板的调试串口到 PC机,使用 USB连接 线连接 iTOP-4412开发板的 USB OTG接口到 PC机的 USB口。 打开“tools”目录下的 dnw.exe软件,如下图所示: 点击上图的“Serial Port->Connect",连接到 iTOP-4412开发板的串口,如下图所示: 接下来开始启动开发板,我们可以看到 dnw 软件会输出启动信息,如下图所示: 在 uboot 进入”倒数秒“的时候,按键盘的任意按键,进入 uboot 命令行,如下图所示: 然后在 uboot 的命令行输入“dnw”, 如下图所示: 接着我们在 PC上右键点击“计算机”,选择“管理”, 如下图所示: 将会打开”计算机管理“,如下图所示: 然后鼠标点击上图左侧一栏里面的“设备管理器”,将会列出设备列表,如下图所示: 在中间一栏的“其他设备”里,我们可以看到“SEC S3C6400X Test B/D”这个未 知设备,我们需要为这个设备安装 DNW驱动

实现基于RS-485通信和Modbus协议的远程智能消防监测系统

可紊 提交于 2020-04-25 08:08:15
题目要求: 监测端上电后LED1至LED8全部熄灭,LED9每隔2秒闪烁一次(亮0.5秒,灭1.5秒)。 采集端测到火焰时,监测端LED1至LED4出现流水灯效果。 采集端火焰消失后,监测端流水灯效果保持。 按下一次监测端KEY1按键,能停止流水灯效果。 使用2块M3主控模块、1个火焰传感器模块,选取一块M3主控模块作为监测端,另一块M3主控模块安装火焰传感器模块作为采集端。 1、将“485采集端程序.hex”文件下载到采集端,使用“485节点配置工具.exe”配置采集端地址为0x01、传感器类型为火焰传感器。将监测端和采集端通过右上方485通信口(J5接口)进行通信连接。 2、使用STM32CubeMX图形化配置工具为监测端生成KEIL开发工程,将STM32CubeMX自身项目和生成的工程保存到 工程目录 中。 使用STM32CubeMX进行以下配置: (1)LED1-LED9和KEY1所在的GPIO的配置、串口 (2)USART2的设置为:波特率115200bps,8位数据位,1位停止位,无校验位。 (3)PC9引脚控制485通信芯片收发转换(低电平接收,高电平发送)。 (4)完成时钟树配置:主频72M (5)配置定时器的工作参数 (6) 配置调试端口 3、监测端通电后,板上LED1至LED8全部熄灭,LED9每隔2秒闪烁一次(亮0.5秒,灭1.5秒)。 /* Infinite

漫谈LiteOS之开发板-LiteOS移植(基于GD32450i-EVAL)

柔情痞子 提交于 2020-04-24 13:33:04
1 为什么移植? 嵌入式设备的芯片型号和外设的差异较大,资源有限。而RTOS无法适配集成所有的驱动,因此会先适配部分开发板,然后通过移植使得适配更多的开发板。 可移植性是嵌入式操作系统与普通操作系统的显著区别之一,而所谓移植就是通过一定的代码修改使得该操作系统适配自己的开发板,以使得自己的开发板可以运行一些手头开发板没有配套的编译工程。 2 移植的分类 移植通常分为系统移植和驱动移植,驱动移植需要依赖具体的外设,本文主要介绍操作系统的移植。采用的主要方案是硬中断接管和不接管中断中的更加简便快捷的不接管中断方式。 3 开发环境 软件环境:Windows系统、Keil5、J-Link对应驱动; 硬件环境:GD32450i-EVAL开发板、J-Link下载器、串口线、数据线; 注意:上述环境也可根据自己需求进行修改,如使用IAR、GCC等。 4 移植流程 4.1 准备工作 (1)下载LiteOS源码 在github上下载最新的LiteOS源码,地址: https://github.com/LiteOS/LiteOS ,下载任意版本皆可,其源码核心一致,我这里使用的是dev-deserted,其工程目录详情如图1所示。 图1 LiteOS源码工程目录以及对应描述 (2)提取LiteOS核心移植文件 对LiteOS源码做一个简单的提取便于后续操作的简洁性,当然也可以不提取

HAL库版DMA循环模式串口数据收发

寵の児 提交于 2020-02-27 06:30:51
在《 STM32CubeMX初识与工程创建 》的基础上,首先对串口进行设置,以实现通过串口对数据的收发。STM32CubeMX生成的HAL库中,提供了三类串口数据收发的接口,分别为阻塞模式,非阻塞模式和DMA模式,文本主要对DMA模式进行了分析并依据提供的接口提出了更加实用的串口数据收发方案。通过对网上资料的查找和分析,主要存在下述两个问题: 1、在数据接收过程中,采用了串口的空闲中断实现了DMA模式下不定长数据的接收,但存在的限制是单次接收的数据长度必须小于DMA缓冲区的长度,如果接收的数据长度大于DMA缓冲区的长度,就数据丢失了。 2、在数据发送过程中,DMA在发送阶段是不能再使能DMA发送的,即调用HAL库中的HAL_UART_Transmit_DMA接口后,在DMA传输数据完成之前是不能再调用该接口的,常用的方式是通过一个标志变量来确定是否可发送,但程序中若存在等待标志变量等逻辑的话,会降低程序运行的效率。 本文通过采用DMA的循环模式配合DMA传输完成中断和串口空闲中断解决DMA缓冲区长度对串口接收数据量的限制问题。采用类递归的逻辑解决串口发送数据等待发送完成标志的问题。 1 硬件配置 首先,应用STM32CubeMX对串口进行配置, 在Connectivity中勾选usart1,具体引脚根据硬件确定。重点注意的是,勾选USART1 global interrupt 使能