stm32学了一段时间,用lora做了一个项目。
要求:lora数据加密传输,lora自组网
1.lora自组网
在上位机上将三个Lora的网络编号设置相同。A为主,BC为从机。A为AT模式,BC为透传模式(都是低功耗)
2.采用aes对称加密:解密和加密都是相同的密匙。
(1) 将数据发送到串口(lora与串口相连接)。主机lora采用AT指令发送数据给从机,将固定部分数据删除(+RCV:2,),解密数据。
(2)主机给从机发送数据AT指令发送(AT+TXA=N,数据),从机接收后将数据拷贝解密。
3.将固定数据删除(代码)
for (;str_in[i] != '\0';i++)
{
start = i; /* 这里记录i */
j = 0; /* 每次开始比较的时候,子串都从0开始,如果第一个字符相等,
那么就接着比较下一个字符,否则进入下一轮循环 */
while ((str_in[i] != '\0')&&(str_sub[j] != '\0')&&(str_in[i] == str_sub[j]))
{
i++;
j++;
}
if (str_sub[j] != '\0') /* 如果不是子串 */
{
str_out[k++] = str_in[start]; /* 将当前比较的这个字符存入结果 */
}
else /* 如果是子串 */
{
count++;
i--; /* 因为返回for循环之后,进行下一次循环的时候还要进行i++的运算的 */
}
|