当前位置:   article > 正文

ESP32-Ardunio库理解_ardino esp32包底层函数

ardino esp32包底层函数

前言

  由于采用的是在VScode平台的PlatformIO来开发ESP32,所以在文件的头文件中,我们需要添加Arduino.h文件来配置环境。PlatformIO基本集成了目前市面上的常见单片机与物联网模块的开发插件,由于作者的原生ardunio平台安装了ESP8266开发插件,无法再适配ESP32,所以转战PIO,并且由于VScode良好的交互性和代码的追溯性,我推荐大家可以以VScode为主要的开发平台。

  本节将先熟悉一下Arduino.h文件的内容,里面包含了很多小功能,我们可以直接调用无需重复造轮子。

内容

常数系列:

  1. #define PI 3.1415926535897932384626433832795
  2. #define HALF_PI 1.5707963267948966192313216916398
  3. #define TWO_PI 6.283185307179586476925286766559
  4. #define DEG_TO_RAD 0.017453292519943295769236907684886
  5. #define RAD_TO_DEG 57.295779513082320876798154814105
  6. #define EULER 2.718281828459045235360287471352

小工具系列:

  1. #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) // 用于设置上下限
  2. #define radians(deg) ((deg)*DEG_TO_RAD) // 角度与弧长转换
  3. #define degrees(rad) ((rad)*RAD_TO_DEG)
  4. #define sq(x) ((x)*(x))
  5. long random(long, long); // 范围随机数
  6. void randomSeed(unsigned long); // 随机种子数
  7. long map(long, long, long, long, long); // 数值映射 long map(long x, long in_min, long in_max, long out_min, long out_max)
  8. #define _min(a,b) ((a)<(b)?(a):(b)) // 大小比较
  9. #define _max(a,b) ((a)>(b)?(a):(b))

位操作:

  1. #define lowByte(w) ((uint8_t) ((w) & 0xff))
  2. #define highByte(w) ((uint8_t) ((w) >> 8))
  3. #define bitRead(value, bit) (((value) >> (bit)) & 0x01)
  4. #define bitSet(value, bit) ((value) |= (1UL << (bit)))
  5. #define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
  6. #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
  7. #define bit(b) (1UL << (b))
  8. #define _BV(b) (1UL << (b))

空指令:

  1. // avr-libc defines _NOP() since 1.6.2
  2. #ifndef _NOP
  3. #define _NOP() do { __asm__ volatile ("nop"); } while (0)
  4. #endif

 重置:

  1. void init(void);
  2. void initVariant(void);
  3. void initArduino(void);

不知道是啥:

  1. unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout);
  2. unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout);
  3. uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
  4. void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/67620
推荐阅读
相关标签
  

闽ICP备14008679号