814|1

1706

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

【Beetle ESP32 C6 Mini 】外设之 IO 与串口 [复制链接]

    本期主要验证Beetle ESP32 C6 Mini  外设中 IO 与串口功能;

    在如下原理图中:

            IO 口比较典型: 

                       GPIO15 --> LED1, 高电平点亮

                       GPIO09 -->  KEY, 低电平触发

            UART 功能:

                      TX --> GPIO16

                      RX-->  GPIO17

 

 

 

   连接Beetle ESP32 C6 Mini 与USB 转UART 功能;

 

 

设置软件代码如下:

#include <Arduino.h>

struct Button {
  const uint8_t PIN;
  uint32_t numberKeyPresses;
  bool pressed;
};

Button button1 = {9, 0, false};

#define LED    15
uint8_t stateLED = 0;


void ARDUINO_ISR_ATTR isr() {
  button1.numberKeyPresses += 1;
  button1.pressed = true;
}


void setup() {
  pinMode(LED, OUTPUT);
  pinMode(button1.PIN, INPUT_PULLUP);
  attachInterrupt(button1.PIN, isr, FALLING);
  Serial.begin(115200);

}

void loop() {
  

  if (button1.pressed) {
    Serial.printf("Button 1 has been pressed %lu times\n\r", button1.numberKeyPresses);
    button1.pressed = false;
    stateLED = stateLED^1;
    digitalWrite(LED,stateLED);

  }

}

最终输出:

 

代码实现了 IO的输入输出, 中断, 串口的打印功能;

 

单独验证IO口从1到0 输出的时间;

void setup() {
pinMode(6, OUTPUT);
}

void loop()
{
 digitalWrite(6,0);
digitalWrite(6,1);
}

此时输出波形; 高低电平的时间并不是一样长;

 

 

如果代码变成如下;

void setup() {
pinMode(6, OUTPUT);
}

void loop()
{
 digitalWrite(6,1);
 digitalWrite(6,0);
}

 

 

也就新一轮的loop 开始中间是有间隔的;这个和普通的main.c 函数有什么区别呢?

查阅原函数可以看见main.cpp 设计如下, 所有就会有以上区别;

 

 

此帖出自无线连接论坛

最新回复

和普通的main.c 函数区别并不大   详情 回复 发表于 2024-5-12 21:59
点赞 关注
 

回复
举报

6809

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

和普通的main.c 函数区别并不大

此帖出自无线连接论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表