Snail 发表于 2015-10-8 11:47:23

MT7681对接机智云-环境搭建与程序烧写

本帖最后由 Snail 于 2015-10-8 11:50 编辑

第一部分:环境搭建
环境搭建除本身自带文档《MT7681环境搭建指南.pdf》《MT7681开发简明手册.pdf》上的内容以外需要注意安装路径:
TOOLCHAINS的路径需要改成自己安装cygwin的路径:

否则编译时会提示/cygdrive/c/Andestech/BSPv310/toolchains/nds32le-elf-newlib-v2j/bin/nds32le-elf-gcc:No such file or directory第二部分:程序烧写接线方面,开发板的rx接usb端的tx口,开发板tx接usb的rx口,开发板的rx口需在系统启动后接上,否则系统不会启动AT#Reboot命令不能使用:1、 rx口是否已经在系统启动后接上2、 确认rx口接上后可能由于系统指令集未启动解决方案:1、 接rx口2、 重新插拔电源,快速接通rx口,在系统处于如图状态时使用命令AT#UpdateFW,若已经启动系统,请重复2过程
3、 编写程序过程中优先启动指令集,将此部分放置于死循环之前:
第三部分:硬件分析硬件部分应参考《Linklt_Connect_7681_Pin_Out_Diagram_v1_0.pdf》《MT7681_Data_Sheet_v0_0.pdf》 第四部分:程序编写参考到的API文档《MediaTek_LinkIt_Connect_7681_API_Reference_v1_0.pdf》GPIO口应用-点灯实验:IoT_gpio_batch_modify_mode(0x04);//00100设置输入输出状态就可以IoT_gpio_output(2,1);//GPIO2输出高电平IoT_gpio_batch_modify_mode内数值参考表格:
读取mt7681上GPIO4的状态:在需要读取的程序代码行插入以下函数:UINT8gpio4_status, out_in;//定义下面函数需要的变量IoT_gpio_batch_modify_mode(0);//00000全部输入状态IoT_gpio_read(4,&gpio4_status, &out_in);//读取GPIO4上的电平和输入输出状态if(gpio4_status==1)//如果读到的是高电平则输入为1{Printf_High("input=1\n");}else{Printf_High("input=0\n");}注意事项:最好在程序一开始就将GPIO设置为输入状态,需要读取的时候再调用此函数一次,判断gpio4_status的状态。 二,定时器使用手册上写明有timer0和timer1定时器,但是在v1.2中只有timer0;可能在后续版本中会提供timer1功能。定时器初始化中后三个参数具体意义不确定。对定时器进行初始化:cnmTimerInitTimer(&IoTCustTimer.custTimer0, CustTimer0TimeoutAction,0, 0);//Initializes a timer启动定时器:cnmTimerStartTimer(&IoTCustTimer.custTimer0,3000);//第二个参数为时间(单位:ms)停止定时器:cnmTimerStopTimer(&IoTCustTimer.custTimer0);使用定时器需要将定时内容写入CustTimer0TimeoutAction函数内:VOID CustTimer0TimeoutAction(UINT_32 param, UINT_32 param2) {#if(UARTRX_TO_AIR_AUTO == 1)    IoT_Cust_uart2wifi_change_mode_handler();#endif    static uint16 T1=0;    IoT_gpio_batch_modify_mode(0x01);    Printf_High("CustTimer1TimeoutAction: [%d]processing...\n", T1++);    if (T1 < 3) {      if(0==T1)      {IoT_gpio_output(0,0);         Printf_High("input=1\n\n");      }      else if(1==T1)      {   IoT_gpio_output(0,1);            Printf_High("input=1\n\n");      }      else      {   IoT_gpio_output(0,0);            Printf_High("input=1\n\n");            T1=0;      }    Printf_High("CustTimer1 Start, will timeout after3 second...\n");    cnmTimerStartTimer (&IoTCustTimer.custTimer0, 3000);    } else {Printf_High("CustTimer1 Stop\n");    cnmTimerStopTimer (&IoTCustTimer.custTimer0);    }//cnmTimerStartTimer (&IoTCustTimer.custTimer0, 100)}

随缘浪子2015 发表于 2015-12-20 19:01:00

看不出来是什么东西的的~~~~
页: [1]
查看完整版本: MT7681对接机智云-环境搭建与程序烧写