rx

NRF24L01多通道通讯

走远了吗. 提交于 2019-11-30 02:45:41
nRF24L01 是一款工作在 2.4~2.5GHz 世界通用 ISM 频段的单片无线收发器芯片。 NRF24L01 单通道实现通讯很简单,只要收发方地址设置正确,就能正常通讯。 但是 NRF24L01 多通道通信,有很多误区。官网的数据手册描述的也是模糊不清,经过我 不断的调试和收集资料,有了点小成果。 一: NRF24L01 支持多通道收发 对于这个多通道有很多理解,(特别和啊海的理解冲突), 现在实验证明: NRF24L01 只有通道 0 可以发射数据和接收,通道 12345 只能接收数据。 而且通道 2345 的高字节 bit39~8 和地址 1 共用。设置为发送模式时不需要选择通道,因为 硬件默认设置发送模式下为通道 0 发送。 正常通讯的结构是 6 个发射机发数据给 1 个接收机接收。 二: RX --TX 地址设置 一个芯片最多可以设置 6 个接收地址。 所以多对一发送比较简单。 但是想要一对多发送的话 就只能一个一个发送了。 nRF24L01 配置为接收模式时可以接收 6 路不同地址,相同频率 的数据 每个数据通道拥有自己的地址, 并且可以通过寄存器来进行分别配置 - 。 每一个数据 通道的地址是通过寄存器 RX_ADDR_Px 来配置的,正常通讯情况下不允许不同的数据通 道设置完全相同的地址。 u8 TX_ADDRESS0[TX_ADR_WIDTH]={ 0x00

NBiot M5311模组+STM32F103调试

拟墨画扇 提交于 2019-11-29 06:33:06
M5311模组+STM32F103的调试,主要问题在串口,只要串口通信没问题,其它的都是AT指令搞定的。 首先搞定STM32F103的USART,我用的是USART1,初始化如下 void uart_init(u32 bound){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE); //USART1_TX PA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); //USART1_RX PA.10 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO

悬浮球回调sin与cos给Activity

混江龙づ霸主 提交于 2019-11-28 15:59:17
if (getDistance(x, mStartX, y, mStartY) < moveRange) { updateViewPosition(); } else { //斜率 float k = (y - mStartY) / (x - mStartX); double rx; double ry; rx = Math.sqrt(moveRange * moveRange / (k * k + 1)); if ((x - mStartX) < 0) { rx = -rx; } ry = k * rx; wmParams.x = (int) (rx + 700); wmParams.y = (int) (ry + 1900); //回调sin,cos listener.onSpeakListener(ry / radius, rx / radius); wm.updateViewLayout(this, wmParams); //刷新显示 } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Activity接收参数 customeMovebutton.setOnSpeakListener(new CustomeMovebutton.OnSpeakListener() { @Override public void

网络数据包收发流程(三):e1000网卡和DMA

扶醉桌前 提交于 2019-11-28 01:00:35
转载 https://www.cnblogs.com/CasonChan/p/5166239.html 一、硬件布局 每个网卡(MAC)都有自己的专用DMA Engine,如上图的 TSEC 和 e1000 网卡intel82546。 上图中的红色线就是以太网数据流,DMA与DDR打交道需要其他模块的协助,如TSEC,PCI controller 以太网数据在 TSEC<-->DDR PCI_Controller<-->DDR 之间的流动,CPU的core是不需要介入的 只有在数据流动结束时(接收完、发送完),DMA Engine才会以外部中断的方式告诉CPU的core 二、DMA Engine 上面是DMA Engine的框图,以接收为例: 1. 在System memory中为DMA开辟一端连续空间,用来BD数组 (一致性dma内存) BD是给DMA Engine使用的,所以不同的设备,BD结构不同,但是大致都有状态、长度、指针3个成员。 2. 初始化BD数组,status为E,length为0 在System memory中再开辟一块一块的内存,可以不连续,用来存放以太网包 将这些内存块的总线地址赋给buf(dma映射) 3. 当MAC接收以太网数据流,放在了Rx FIFO中 4. 当一个以太网包接收完全后,DMA engine依次做以下事情 fetch bd

macos Mojave 出现网络出错 Frame Check Sequence: Bad checksum

白昼怎懂夜的黑 提交于 2019-11-26 23:02:01
问题描述:使用软电话外呼的时候出现Request Timeout . 端口监听之后通过 Wireshark发现错误:`Frame Check Sequence: Bad checksum`,查看wireshark 的preference 配置,checksum disable. 定位问题为电脑网络 checksum 出问题。   解决方案:查询 使用命令关闭网络checksum功能     sysctl -w net.link.ether.inet.apple_hwcksum_tx=0     sysctl -w net.link.ether.inet.apple_hwcksum_rx=0     出错: sysctl: unknown oid 'net.link.ether.inet.apple_hwcksum_tx' 在 https://gist.github.com/RichGuk/7252584 中查找类似key     最终解决:        sysctl -w net.link.generic.system.hwcksum_tx=0        sysctl -w net.link.generic.system.hwcksum_rx=0 备注:执行sysctl 命令需要先取消系统保护 ,可根据教程 http://www.cadhome.com.cn/17646

Linux 查看实时网卡流量的几种方式

给你一囗甜甜゛ 提交于 2019-11-26 13:02:02
在工作中,我们经常需要查看服务器的实时网卡流量。通常,我们会通过这几种方式查看Linux服务器的实时网卡流量。 1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众多统计数据。其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量。 sar –n DEV 1 2 命令后面1 2 意思是:每一秒钟取1次值,取2次。 DEV显示网络接口信息 另外,-n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL ,其代表的含义如下: DEV显示网络接口信息。 EDEV显示关于网络错误的统计数据。 NFS统计活动的NFS客户端的信息。 NFSD统计NFS服务器的信息 SOCK显示套接字信息 ALL显示所有5个开关 [sre@CDVM- 213017031 ~]$ sar -n DEV 1 2 Linux 2.6. 32- 431.el6.x86_64 (CDVM- 213017031) 05/ 04/ 2017 _x86_64 _ ( 4 CPU) 08 : 05 : 30 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 08 : 05 : 31 PM lo 0. 00