打印
[PIC®/AVR®/dsPIC®产品]

【已解决】【新人求助】MPLAB报错_AESEncode LORA

[复制链接]
860|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 喜欢电路的镜子 于 2019-8-13 17:09 编辑

跟着教程做,想用MPLAB写一个简单的LoRaWAN的发消息程序,程序和教程上的一模一样,结果编译就没通过...

报错位置如下:
:0: error: (499) undefined symbol:
        _AESEncode(dist/default/production\LoRaWAN_mote_test1.X.production.obj)
(908) exit status = 1

后来发现是lora自己的库里没有对AES.c,AES.h两个文件进行定义,导致lorawan_aes.c中的函数AESEncode无法使用
从github找了两个别人写的aes算法实现粘贴进去,试着改了改这个encode,但因为不懂原理所以是瞎改orz结果就报别的新错误orz

请问大家在用loraWAN的库的时候有这个问题吗?我是能换个别的什么文件?还是说我必须得看懂原理自己编一个orz
万分感谢啊!!!!!!

使用特权

评论回复
沙发
喜欢电路的镜子|  楼主 | 2019-8-13 09:43 | 只看该作者
本帖最后由 喜欢电路的镜子 于 2019-8-13 10:36 编辑

不知有哪位大佬能指点一下迷津orz
万分感谢!!!

使用特权

评论回复
板凳
喜欢电路的镜子|  楼主 | 2019-8-13 09:45 | 只看该作者
再附一个代码(虽然可能没什么参考意义...因为真的很简单...)


#include "mcc_generated_files/mcc.h"

uint8_t nwkSKey[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99};
uint8_t appSKey[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87};
uint32_t devAddr = 0x42;

void RxData(uint8_t* pData, uint8_t dataLength, OpStatus_t status){}

void RxJoinResponse(bool status){}
/*
                         Main application
*/
void main(void)
{
    // Initialize the device
    SYSTEM_Initialize();

    // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
    // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global and Peripheral Interrupts
    // Use the following macros to:

    // Enable the Global Interrupts
    //INTERRUPT_GlobalInterruptEnable();

    // Disable the Global Interrupts
    //INTERRUPT_GlobalInterruptDisable();

    // Enable the Peripheral Interrupts
    //INTERRUPT_PeripheralInterruptEnable();

    // Disable the Peripheral Interrupts
    //INTERRUPT_PeripheralInterruptDisable();
   
    LORAWAN_Init(RxData, RxJoinResponse);
   
    LORAWAN_SetNetworkSessionKey(nwkSKey);
    LORAWAN_SetApplicationSessionKey(appSKey);
    LORAWAN_SetDeviceAddress(devAddr);
   
    LORAWAN_Join(ABP);
    while (1)
    {
        // Add your application code
        LORAWAN_Mainloop();
        
        LORAWAN_Send(UNCNF, 2, "LoRa", 4);
  
    }
}

使用特权

评论回复
地板
lcczg| | 2019-8-13 11:26 | 只看该作者
楼主哪里的教程。我看在MPLAB X IDE的 MCC里有LoRaWAN 的库,楼主可以试试。

使用特权

评论回复
5
喜欢电路的镜子|  楼主 | 2019-8-13 15:30 | 只看该作者
lcczg 发表于 2019-8-13 11:26
楼主哪里的教程。我看在MPLAB X IDE的 MCC里有LoRaWAN 的库,楼主可以试试。

我用的就是MCC里的库,里面就缺这两个文件,让自己下,然而并不知道该去哪儿下....

教程就是官网上的英文文档  LoRaWAN™ Library Plug-in for MPLAB® Code Configurator User’s Guide

使用特权

评论回复
6
喜欢电路的镜子|  楼主 | 2019-8-13 17:11 | 只看该作者
最后果然还是走上了自己看懂原理,然后理解别人代码,自行修改的道路,虽然不知道未来会有什么问题,但至少目前是过编了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

15

帖子

0

粉丝