中移ML307A(4G Cat1,C-SDK,OpenCPU)模组学习开发-添加源文件和头文件,工程结构说明(用户必看)

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ML307A_OPEN" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

说明

通过上节的 编译下载和运行第一个程序 咱知道咱是在custom里面写自己的程序;

sys_package是这边自己增加的文件,后期将会把封装的功能放到里面,然后提供接口使用文档供用户使用;

咱后面写自己的程序的时候需要把.c文件放到src文件夹里面(这是硬性规定);   .h文件可以随意

 

 custom_main.c 里面的   int cm_opencpu_entry(char * param)      函数是程序的main函数, 程序从这个函数里面开始执行

 

 

 

现在新建.c和.h文件

因为我不喜欢把.c文件和.h文件分开, 所以我直接把.c和.h文件放到src里面

1,在src文件夹右键选择 新建文件

 

test.c

 

2,同样在src文件夹新建个test.h文件

 

3,然后如果要使用test.c 需要在 custom_main.mk 里面添加包含

OC_FILES += $(CUSTOM_MAIN_DIR)/src/test.c

INC      += -I'$(CUSTOM_MAIN_DIR)/src'

 

 

现在说一下咱都可以直接写哪些 #include xxxx.h

1,首先这就是个单片机使用的C编译器,所以C库都是可以的

#include <stdint.h>
#include <stdbool.h>
#include <string.h> 
.
.
.

2,然后呢就是厂家内部封装好的库

这些呢咱都是可以直接在文件里面  #include xxxx.h

 

3,假设我需要在test里面使用模组的ADC功能, 只需要  #include "cm_adc.h"

 

4, 然后我就可以使用里的函数了

 

 

#include "cm_adc.h"

void test(void)
{
    int32_t adc_value=0;

    cm_adc_read(CM_ADC_0, &adc_value);//读取电压
}

 

 

5, 除了上面的include里面的,其它地方也有几个

我只是全方面阐述,知不知道这个无所谓!

 

标准的思路

1,其实咱们都是在  examples 例子里面找需要的功能,找到自己需要的功能以后看看里面都调用了哪些.h文件咱就调用哪些就可以

 

2,假设我需要ADC的功能

 

3,我就可以去掉不必要的之后把需要的拷贝过来

#include <stdint.h>
#include "cm_adc.h"
#include "cm_os.h"

void test(void)
{
    int32_t voltage;
    int32_t ret;
    //测试ADC0
    ret = cm_adc_read(CM_ADC_0,&voltage);
}

 

 

现在我需要在 custom_main.c 里面调用test.c里面的 test函数

1,先按照正常写单片机C语言的规定补全 test文件

#include "test.h"
#include <stdint.h>
#include "cm_adc.h"
#include "cm_os.h"

void test(void)
{
    int32_t voltage;
    int32_t ret;
    //测试ADC0
    ret = cm_adc_read(CM_ADC_0,&voltage);
}

 

#ifndef test_h_
#define test_h_

void test(void);

#endif

 

2,然后就可以调用了

 

现在说下printf打印函数

1.TX是开发板上面的串口日志输出引脚(波特率115200), 用户可以接到串口模组RX引脚查看开发板打印的日志

注意:该引脚是1.8V引脚, 可以接到3.3V的串口模块上, 推荐串接一个1K电阻

 

2.使用这个引脚打印是使用  cm_log_printf

 

3.现在就可以加上打印刚才的采集的电压了

#include "test.h"
#include <stdint.h>
#include "cm_adc.h"
#include "cm_os.h"
#include "cm_sys.h"
 
void test(void)
{
    int32_t voltage;
    int32_t ret;
    //测试ADC0
    ret = cm_adc_read(CM_ADC_0,&voltage);

    cm_log_printf(0,"ADC ADC ADC ADC ADC ADC ADC ADC ADC ADC ADC ADC=%ld\r\n",voltage);
}

 

 

 

编译下载测试

下载的详细步骤用户去看    "编译下载和运行第一个程序"  那节,这里不再详细赘述;

 

1,编译

双击打开

 

先清理工程    ML307A_build.bat clean

 

编译 custom_main 工程

下面四个命令根据自己的开发板模组型号进行选择

ML307A_build.bat DCLN
ML307A_build.bat DSLN
ML307A_build.bat GCLN
ML307A_build.bat GSLN

 

2,下载

选择生成的zip文件,然后点击start

 

 

先一直按着BOOT按键,然后按一下RST按键, 然后松开RST按键, 最后松开BOOT,此时模组进入了烧录程序模式

 

 

烧录成功以后点击 Back返回

 

 

3,测试

使用串口模块连接上

 

复位一下开发板可以看到打印的日志

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2024-07-16 02:58  广源时代  阅读(517)  评论(0编辑  收藏  举报

导航

支付宝 QQ群