Nol.A SDK Library 26.11.2
For IoT System Software Development
Loading...
Searching...
No Matches
st-nucleo-l152re/USB-CDC/main.cpp
#include <cox.h>
Timer tPrint;
static void printTask(void *) {
System.ledToggle();
printf("[%lu usec] Hi!\n", micros());
SerialUSB.printf("[%lu usec] Hi!\n", micros());
}
static void keyboard(SerialPort&) {
System.ledToggle();
while (Serial.available() > 0) {
printf("[%lu usec] Keyboard input: 0x%02X\n", micros(), Serial.read());
}
}
static void button() {
System.ledToggle();
printf("[%lu usec] User button pressed\n", micros());
}
static void eventVcpInput(SerialPort &) {
System.ledToggle();
while (SerialUSB.available() > 0) {
SerialUSB.printf("[%lu usec] Keyboard input: 0x%02X\n", micros(), SerialUSB.read());
}
}
void setup() {
System.ledOn();
Serial.begin(115200);
printf("\n*** Serial test for ST Nucleo-L152RE ***\n");
pinMode(BUTTON_BUILTIN, INPUT);
attachInterrupt(BUTTON_BUILTIN, button, FALLING);
tPrint.onFired(printTask, NULL);
tPrint.startPeriodic(1000);
Serial.onReceive(keyboard);
Serial.listen();
SerialUSB.begin();
SerialUSB.onReceive(eventVcpInput);
SerialUSB.listen();
}
시리얼 포트를 제어하기 위한 클래스
Definition SerialPort.hpp:76
Timer는 일정 시간 이후에 1회 실행될 작업, 매 일정 시간마다 실행될 작업 등을 위한 기능입니다.
Definition Timer.hpp:61
bool startPeriodic(uint32_t millis, bool interrupt=false)
작업함수를 매 millis 밀리초 주기로 반복하여 실행합니다.
void onFired(void(*func)(void *), void *args=nullptr)
타이머 만료시 실행시킬 작업함수를 지정합니다.
API and definitions.
uint32_t micros()
보드 부팅 이후부터 현재까지의 경과 시간을 마이크로초 단위로 구합니다.
bool pinMode(int8_t pin, enum ioDirection direction)
pin 을 direction 방향을 갖는 디지털 핀으로 동작하도록 설정합니다.
@ INPUT
Definition nola-common.h:382