中移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,测试
使用串口模块连接上
复位一下开发板可以看到打印的日志
.