“MK22开发笔记-Cube小车/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
从Arduino移植代码到mbed上的注意事项
从Arduino移植代码到mbed上的注意事项
第30行: 第30行:
  
 
* 目前蓝牙模块是使用D2和D3,D0和D1的串口暂时用不了;
 
* 目前蓝牙模块是使用D2和D3,D0和D1的串口暂时用不了;
* 使用D5和D6作为GPIO控制,D7和D8作为PWM输出;
+
* 电机驱动使用D5和D6作为GPIO控制,以及D7和D8作为PWM输出;

2016年7月5日 (二) 02:40的版本

概述

  • MK22FN512VLH12是NXP的一款MCU,它基于mbed平台开发。目前只移植了蓝牙模式,即通过手机App控制小车。
  • Cube小车项目见:开源电驱机器小车CUBE/zh

步骤

  • 1、进入mbed 主页,注册。
  • 2、注册完毕,回到主页,点击右上角的“Compiler”即可进入在线编译模式。
  • 3、程序编辑完毕后,点击“Compile”即可在编译、链接成功后自动下载bin文件。
  • 4、下载JFlash:https://www.segger.com/jflash.html
  • 5、用JFlash把bin下载到MK22中运行。

代码

从Arduino移植代码到mbed上的注意事项

  • 关于mbed的学习指南这里不再赘述,网上已有很多学习资料。或者可以看一下这里的文件:MBed学习指南.pdf

注意事项:

  • Arduino的程序入口是在.ino文件中的setup、loop函数,mbed的程序入口是在main.cpp文件里的main函数。在main函数中用while(true)实现Arduino中的loop函数功能。
  • Arduino中的pinMode需改为mbed的AnalogIn、AnalogOut、DigitalOut、DigitalIn等类的实例
  • Arduino中用analogWrite来实现PWM的输出,在mbed中需要替换为PwmOut类的实例。在mbed中,PWM的输出频率、宽度,都是可以通过API动态设置的
  • Arduino中用Serial 类实现串口输出,在mbed中需使用Serial类的实例替代。
  • Arduino中的millis、micros函数,在mbed中需使用Timer类的实例替代。另外,在mbed中,Timeout、Ticker两个类,作用是分别实现定时单次操作和定时重复操作。
  • Arduino中的pgm_read_byte函数是从flash中读取数据,在mbed中直接操作uint8_t指针即可,不再需要单独的函数从flash读数据。


  • 关于管脚定义,可先clone mbed源码到本地:https://github.com/mbedmicro/mbed.git
    • 在目录hal\targets\hal\TARGET_Freescale\TARGET_KSDK2_MCUS\TARGET_K22F\TARGET_FRDM下面的PinNames.h文件里有对MK22的所有管脚的定义。


  • 目前蓝牙模块是使用D2和D3,D0和D1的串口暂时用不了;
  • 电机驱动使用D5和D6作为GPIO控制,以及D7和D8作为PWM输出;