内容介绍
内容介绍
1.硬件介绍
Teensy 4.1 是一款由 PJRC 公司开发的高性能微控制器板,基于 NXP 的 i.MX RT1062 处理器。它以其强大的处理能力、丰富的外设接口和紧凑的尺寸,广泛应用于嵌入式系统、DIY 项目、音频处理、机器人控制等领域。
主要特性
- 处理器:
- 型号: NXP i.MX RT1062
- 核心: ARM Cortex-M7
- 主频: 600 MHz
- 性能: 高达 3016 CoreMark 分数
- 内存:
- RAM: 1MB (内部)
- Flash: 8MB (外部 QSPI Flash)
- 外设接口:
- USB: 1 x USB 2.0 Host/Device
- 以太网: 10/100 Mbps Ethernet (内置 PHY)
- CAN: 2 x CAN Bus
- 串口: 8 x UART
- I2C: 3 x I2C
- SPI: 3 x SPI
- PWM: 30 x PWM 输出
- ADC: 14 x 12-bit ADC 输入
- DAC: 2 x 12-bit DAC 输出
- 扩展性:
- 引脚: 46 个 GPIO 引脚
- 扩展接口: 支持 MicroSD 卡、PSRAM、外部 Flash 等
- 尺寸:
- 长宽: 2.4 x 0.7 英寸 (61 x 18 mm)
- 电源:
- 电压: 3.3V 操作电压
- 输入电压: 3.6V 到 5.5V
开发环境
- Arduino IDE: 支持 Teensy 4.1,提供丰富的库和示例代码。
- Teensyduino: PJRC 提供的 Arduino IDE 扩展,支持 Teensy 系列板卡。
- 其他工具: 支持 PlatformIO、Segger Embedded Studio 等开发环境。
应用场景
- 音频处理: 高性能 DSP 能力,适合音频合成、效果处理等。
- 机器人控制: 丰富的 PWM 和通信接口,适合电机控制和传感器集成。
- 物联网: 内置以太网和 CAN 总线,适合网络通信和工业控制。
- DIY 项目: 紧凑的尺寸和强大的性能,适合各种创意项目。
2.功能介绍
该项目实现了通过给板卡添加网口后通过网口通信,控制板子上的LED灯。
3.设计思路
Arduino IDE的Teensy包中提供了丰富的例程,我们寻找到名为ServerWithListeners的demo便让板卡实现以太网通信,接下来根据我们的需求在代码中加上点灯的操作即可。
4.流程图
5.代码说明
void processClientData(ClientState &state) {
// Loop over available data until an empty line or no more data
// Note that if emptyLine starts as false then this will ignore any
// initial blank line.
while (true) {
int avail = state.client.available();
if (avail <= 0) {
return;
}
state.lastRead = millis();
int c = state.client.read();
if(i < 10)
{
str[i] = c;
i++;
}
state.client.flush();
printf("%c", c);
if(!flag)
{
if (str[5] == '1')
{
digitalWrite(LED_BUILTIN, HIGH);
printf("LED ON!\n");
flag = 1;
}
else if(str[5] == '0')
{
digitalWrite(LED_BUILTIN, LOW);
printf("LED OFF!\n");
flag = 1;
}
}
if (c == '\n') {
if (state.emptyLine) {
for(int j = 0; j < 10; j++)
{
str[j] = '\0';
}
flag = 0;
i = 0;
break;
}
// Start a new empty line
state.emptyLine = true;
} else if (c != '\r') {
// Ignore carriage returns because CRLF is a likely pattern in
// an HTTP request
state.emptyLine = false;
}
}
以上为核心代码,可以看到,我们检测通过以太网传来的字符串的第六个字符,如果是1则点亮LED,如果是0则熄灭LED,同时,执行一次检测之后便把标志位设置为1记录已经检测到一次信息,直到识别到换行符代表此次检测结束,把标志位重新置零。
当烧录之后,在浏览器中访问板卡的IP地址(如192.168.1.119)加上特定内容变可以实现点灯和灭灯。
如访问192.168.1.119/1可以让LED点亮。
访问192.168.1.119/0可以让LED熄灭。
也可以在命令提示符中输入指令“curl -X GET http://192.168.1.119/1”实现点亮LED。
具体效果可以参考视频演示。
6.心得体会
本项目让我对于以太网通信有了新的认识,无论是原理还是流程都有了更深入的理解,相信本项目会让我在未来的通信研究中更进一步。
附件下载
ServerWithListeners.ino
团队介绍
一位热爱嵌入式开发的大学生
评论
0 / 100
查看更多