1:nrf52832,出现发送数据长度不正确的情况(主要是不仔细,将发送长度sizeof里的内容写错)
2:定义时间以及状态的结构体时,时间的年月日是按位存储的,只占用四字节数据,状态只需要占用一字节数据(uint8-t即可),整个结构体是按四字节对齐的,还有就是存储时间数据时,由于是按位操作的,将数据组合成4字节数据,所以需要注意数据存储的大小端问题
3:数据存储大小端问题
大端(Big-Endian),是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。
小端(Little-Endian),是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中
例如0x1234567812表示高位处,78是低位处
大端存储则表示低位数据存储在高地址处
小端存储表示低位数据存储在低地址处
例如,
大端存储为 12345678
小端存储为78 56 34 12
一般的存储方式都是小端存储比如电脑Keil等
4:nrf52832的内部RTC定时器,需要存储时间数据到flash中时,在开机设备时,需要将flash中的值读取出来并更新到RTC系统中(tm结构体中)否则会导致关键开机之后时间还是默认的时间信息思想:在关机时获取当前系统时间信息并存储到flash中,在开机时读取flash中数据并写入系统时间tm结构体中
问题:NRF52832每次透传只能发送80字节数据,超过的就丢包?
可能原因,是协议栈的问题,还有设置吞吐量可以增大收发数据长度。目前吞吐量设置的是23,所以一次只能接受20字节数据,接收到的数据超过20字节,则需要切包处理过后下发。