ML307R-DC OpenCPU SDK开发中GPIO例子程序

概述

在OpenCPU开发的例子程序中有如下的定义:

static cm_cmd_t cmd_vector[] = {
   
   
    ...
    {
   
   "GPIO_READ", cm_test_gpio_read},//CM:GPIO_READ:NUM:0xiomuxpin(16进制):0xiomuxfun(16进制)
    {
   
   "GPIO_WRITE", cm_test_gpio_write},//CM:GPIO_WRITE:NUM:0xiomuxpin(16进制):0xiomuxfun(16进制):value
    ...

可以使用串口输入:
CM:GPIO_READ:NUM:0xiomuxpin:0xiomuxfun读取GPIO的值
CM:GPIO_WRITE:NUM:0xiomuxpin:0xiomuxfun:value设置GPIO的状态值

下面把这个命令的用法讨论如下。

读写命令

要使用这些命令,需要对程序进行编译并下载。要编译例子中的demo_main程序,需要打开tool目录,再打开scons目录下面的EnvironConfig.py程序,将env['DEMO_CARRY"] ARGUMENTS.get(‘demo’, y)

env['DEMO_CARRY"] ARGUMENTS.get('demo', 'n')
#变化为:
env['DEMO_CARRY"] ARGUMENTS.get('demo', 'y')

这时,再执行scons就会编译examples\demo_main下的主程序了。

读命令

在cm_demo_main.c文件中有外部输入的命令定义如上。在串口输入:
CM:GPIO_READ:0:4C:1
串口返回:
[Rx][08:20:10.371] please input cmds:
[Rx][09:19:13.236] read gpio_0 level = 1
[Rx][09:19:13.236] read gpio_0 dir = 1
[Rx][09:19:13.266] read gpio_0 dir = 1
[Rx][09:19:13.266] read gpio_0 level = 1
[Rx][09:19:13.296] OK

用万用表测量端子,电压为3.3V。这里本来应该是1.8V,但电路已经做了1.8V-3.3V的转换。
这里要解释一下这个命令的参数的含义。在注释行里有这个命令的注释:
//CM:GPIO_READ:NUM:0xiomuxpin(16进制):0xiomuxfun(16进制)

  • NUM:是GPIO的数字。比如GPIO0,这个NUM就写入0,GPIO1,这个数子是1.
  • 0xiomuxpin(16进制): 应该填写16进制的数。是对用芯片的管脚的号
  • 0xiomuxfun(16进制): 引脚资源,通过数字选择功能

在代码中看这个数据是怎么定义的:

void cm_test_gpio_read(unsigned char **cmd, int len)
{
   
   
    cm_gpio_cfg_t cfg = {
   
   0};
    cm_gpio_level_e level = 0;
    cm_gpio_num_e test_gpio = 0;
    cm_iomux_pin_e pin = 0;
    cm_iomux_func_e fun = 0;
    cm_iomux_func_e fun1 = 0
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值