X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
DigiKey得捷技术专区
[作品提交] 【Follow me第二季第2期】任务汇总
lijinlei
2024-9-28 08:55
楼主
# 【Follow me第二季第2期】任务汇总 非常荣幸参加 EEWorld 和 DigiKey 联合举办的[【Follow me 第二季第 2 期】](https://www.eeworld.com.cn/huodong/digikey_follow_me_2024_02/)活动,从8月26号收到物料到9月28号完成所有任务,经过一个多月的学习、思考和实践,我对这块开发板和物联网有了更深刻的理解,也在微信群里结交了很多志同道合的朋友,感谢大家的支持和帮助,感谢工作人员对参与者的大力支持。 下面我将此次活动的任务完成情况进行汇总和报告。 所有任务已在 `DigiKey得捷技术专区` 板块分别发表 `作品展示` 帖,链接如下 1. [【Follow me第二季第2期】入门环境搭建、闪灯和串口发送](https://bbs.eeworld.com.cn/thread-1291974-1-1.html) ; 2. [【Follow me第二季第2期】驱动 12*8 点阵 LED 实现图像和文字显示](https://bbs.eeworld.com.cn/thread-1294041-1-1.html) ; 3. [【Follow me第二季第2期】DAC 生成正弦波](https://bbs.eeworld.com.cn/thread-1294043-1-1.html) ; 4. [【Follow me第二季第2期】OPAMP 放大 DAC 信号](https://bbs.eeworld.com.cn/thread-1294045-1-1.html) ; 5. [【Follow me第二季第2期】ADC 采集 OPAMP 放大 DAC 信号并串口显示波形](https://bbs.eeworld.com.cn/thread-1294047-1-1.html) ; 6. [【Follow me第二季第2期】开发板通过 MQTT 协议接入 Home Assistant](https://bbs.eeworld.com.cn/thread-1294801-1-1.html) ; 7. [【Follow me第二季第2期】SHT40温湿度模块获取环境数据 ](https://bbs.eeworld.com.cn/thread-1293824-1-1.html) ; 8. [【Follow me第二季第2期】开发板读取 SHT40 数据并上传至 Home Assistant](https://bbs.eeworld.com.cn/thread-1294905-1-1.html) . 视频录制见:[【Follow me第二季第2期】-【Follow me第二季第2期】-EEWORLD大学堂](https://training.eeworld.com.cn/video/41097) . 代码工程见:[【Follow me第二季第2期】所有任务的工程源码](https://download.eeworld.com.cn/detail/lijinlei/634523) . ## 项目演示视频
【Follow me第二期】video
视频节点索引如下, **入门任务:01:24** **基础任务:02:12** **进阶任务:06:32** **扩展任务:12:39** ## 硬件物料
Arduino UNO R4 WiFi 开发板 x1 ![img](https://12.eewimg.cn/bbs/data/attachment/forum/202408/29/183559u05fwvth00h4u0wn.jpg.thumb.jpg) SHT40 温湿度传感器模块 x1
## 任务成果展示 ### 入门任务:搭建环境并开启第一步Blink / 串口打印Hello EEWorld! 对应论坛贴:[【Follow me第二季第2期】入门环境搭建、闪灯和串口发送](https://bbs.eeworld.com.cn/thread-1291974-1-1.html) https://bbs.eeworld.com.cn/thread-1291974-1-1.html #### 环境搭建 1.官网下载并安装最新版 Arduino IDE: [Software | Arduino](https://www.arduino.cc/en/software) . ![img](https://12.eewimg.cn/bbs/data/attachment/forum/202408/29/183819hriwjvdi5d50ir05.jpg.thumb.jpg) 2.运行软件,**开发板管理** 搜索 `R4` 并安装最新版程序扩展包 #### 1. 闪灯 Blink 所需板载元件:绿色LED 打开开发板示例程序,并下载程序即可 ![img](https://12.eewimg.cn/bbs/data/attachment/forum/202408/29/184048fdk7v2vgjj777pj2.jpg) ##### 代码 ```c++ void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(500); // wait for a second } ``` ##### 演示
Blink
#### 2. 串口通信 所用板载元件:串口通信接口,即Type-C接口和数据线 ##### 代码 ```c++ void setup() { Serial.begin(115200); } void loop() { Serial.println("Hello EEWorld!"); delay(500); } ``` ##### 演示
串口打印
### 基础任务一:驱动12x8点阵LED 对应论坛贴:[【Follow me第二季第2期】驱动 12*8 点阵 LED 实现图像和文字显示](https://bbs.eeworld.com.cn/thread-1294041-1-1.html) https://bbs.eeworld.com.cn/thread-1294041-1-1.html 所需板载元件:12*8点阵LED 通过 [LED 矩阵工具](https://ledmatrix-editor.arduino.cc/) 定义点阵 LED 并实现心形图案的显示,并点击按钮 `>` 下载相应的 `*.h` 文件。
#### 流程图
#### 代码 ```c++ #include "Arduino_LED_Matrix.h" // Include the LED_Matrix library //#include "frames.h" // Include a header file containing some custom icons const uint32_t heart[] = { 0x3184a444, 0x44042081, 0x100a0040 }; ArduinoLEDMatrix matrix; // Create an instance of the ArduinoLEDMatrix class void setup() { Serial.begin(115200); // Initialize serial communication at a baud rate of 115200 matrix.begin(); // Initialize the LED matrix } void loop() { matrix.loadFrame(heart); delay(500); // Turn off the display matrix.clear(); delay(1000); // Print the current value of millis() to the serial monitor Serial.println(millis()); } ``` #### 演示
VID_20240915_234101
### 基础任务二:用DAC生成正弦波 对应论坛贴:[【Follow me第二季第2期】DAC 生成正弦波](https://bbs.eeworld.com.cn/thread-1294043-1-1.html) https://bbs.eeworld.com.cn/thread-1294043-1-1.html 所需器件:板载 `A0` 接口产生 DAC 信号、示波器一台、BNC 信号测试线一条、公对公杜邦线两根 #### 流程图
#### 代码 ```c++ #include "analogWave.h" // Include the library for analog waveform generation analogWave wave(DAC); // Create an instance of the analogWave class, using the DAC pin int freq = 3; // in hertz, change accordingly void setup() { wave.sine(freq); // Generate a sine wave with the initial frequency. // Generate square and saw wave //wave.square(freq); //wave.saw(freq); wave.amplitude(0.7); // set amplitude ratio [0.0,1.0] } void loop() { } ``` #### 演示
VID_20240921_010852 正弦波
### 基础任务三:用OPAMP放大DAC信号 对应论坛贴:[【Follow me第二季第2期】OPAMP 放大 DAC 信号](https://bbs.eeworld.com.cn/thread-1294045-1-1.html) https://bbs.eeworld.com.cn/thread-1294045-1-1.html **所需元件**:板载 `A0` 、`A1`、`A2`、`A3` 引脚接口、杜邦线若干、面包板一块、10kΩ 色环电阻两只、示波器一台、BNC 信号测试线两根 在 `minus` 和 GND 之间连接一个电阻。然后使用第二个电阻将 output 和 `minus` 连接在一起。此时在 `plus` 处输入的任何信号都将在输出引脚处以两倍振幅显示。输入信号和 Arduino 板应该共享相同的电阻和 GND .
若要将电压信号放大 4 倍,则需考虑运算放大器的放大率,主要取决于所选的电阻值。 电路接线如下图所示
#### 流程图
#### 代码 ```c++ #include
#include "analogWave.h" // Include the library for analog waveform generation analogWave wave(DAC); int freq = 3; void setup () { // activate OPAMP, default channel 0 // Plus: Analog A1 // Minus: Analog A2 // Output: Analog A3 OPAMP.begin(); wave.sine(freq); wave.amplitude(0.3); } void loop() { } ``` #### 演示
VID_20240923_OPAMP放大器
### 基础任务四:用ADC采集并且打印数据到串口等其他接口可上传到上位机显示曲线 对应论坛贴:[【Follow me第二季第2期】ADC 采集 OPAMP 放大 DAC 信号并串口显示波形](https://bbs.eeworld.com.cn/thread-1294047-1-1.html) https://bbs.eeworld.com.cn/thread-1294047-1-1.html **所需元件**:板载 `A0` 、`A1`、`A2`、`A3` 、`A4`、`A5` 引脚接口、杜邦线若干、面包板一块、10kΩ 色环电阻两只、示波器一台、BNC 信号测试线两根 结合 DAC 输出正弦波信号、OPAMP 放大 DAC 信号的相关内容,通过开发板 ADC 读取和转换模拟量为数字参量,通过 Arduino IDE 的图形串口工具上位机同时显示 OPAMP 放大前后的 DAC 信号波形。 实物连线如下图所示
#### 流程图
#### 代码 ```c++ #include
#include "analogWave.h" // Include the library for analog waveform generation analogWave wave(DAC); int freq = 100; void setup () { Serial.begin(250000); analogReadResolution(14); wave.sine(freq); wave.amplitude(0.5); OPAMP.begin(OPAMP_SPEED_HIGHSPEED); } void loop() { Serial.print(analogRead(A4)); // DAC output Serial.print(" "); Serial.println(analogRead(A5)); // OPAMP output } ``` #### 演示
串口打印OPAMP放大信号
### 进阶任务:通过Wi-Fi,利用MQTT协议接入到开源的智能家居平台HA(Home Assistant) 对应论坛贴:[【Follow me第二季第2期】开发板通过 MQTT 协议接入 Home Assistant](https://bbs.eeworld.com.cn/thread-1294801-1-1.html) https://bbs.eeworld.com.cn/thread-1294801-1-1.html 所需元件:Arduino UNO R4 WiFi 开发板、type-c 数据线一根 #### 部署 HA 环境 根据任务要求,完成环境搭建和开发板接入。具体包括 1. Docker 安装(Linux系统环境) 2. HomeAssistant安装 3. EMQX服务器安装 4. MQTT协议连接 5. 开发板连接 使用 [Docker](https://www.docker.com/) 容器安装 [Home Assistant](https://www.home-assistant.io/) , 1. 下载 [Docker](https://www.docker.com/) 软件; 2. C 盘根目录新建文件夹 `homeassistant` ; 3. 下载部署文件 [GitHub](https://gist.github.com/peyanski/4d803963e890955886d40ae00d1cfb90) 或 [github](https://github.com/h2457528767/HomeAssistant/blob/main/docker-compose.yml) 并解压得到 `docker-compose.yml` 保存至上述 `homeassistant` 文件夹; 4. Windows 打开 `命令提示符` 或 `Windows PowerShell`,输入如下代码实现自动下载镜像 ```powershell cd C:\homeassistant docker-compose.yml docker-compose up ``` 5. 安装过程需大约 30 分钟,即可在 Docker 容器中创建 Home Assistant 镜像; 5. 自动从镜像安装 Home Assistant 到容器
该代码 `docker-compose.yml` 将映射 Home Assistant 配置文件到 `C:/homeassistant` 文件夹; 5. 浏览器输入网址 `http://localhost:8123/` 进入Home Assistant 主界面,创建智能家居账号。
8. 安装 EMQX 服务器 Windows 命令行或 PowerShell 输入并执行如下代码 ```powershell docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest ``` 等待进度条下载和部署完成(大约5分钟),即可获得 EMQX 服务器。 9. 配置 EMQX (1)浏览器打开网址 `http://localhost:18083/` ,初始登录账户名 `admin` 密码 `public` ;
(2)依次打开 `访问控制` - `客户端认证` - `创建` - `Password-Based` - `内置数据库` - (默认配置)- `创建` ; (3)`用户管理` - `新建用户` - 自定义用户名和密码 . 10. 连接 EMQX 与 HA (1)命令行或 PowerShell 输入 `ipconfig` 获取本地计算机 IPv4 地址,如 `42.34.25.153` (2)配置 Home Assistant ,依次点击设置 - 设备与服务 - 添加集成 - 搜索 MQTT - 填写代理信息。 > 代理栏输入计算机 IP 地址,端口 1883,用户名和密码为 EMQX 中创建的用户信息。
(3)点击 `提交` 后显示 `成功创建 MQTT` ,此时 `集成` 选项下出现 `MQTT` 条目,EMQX 网页 `集群` 的 `总连接数` 和 `在线连接数` 由 `0` 变为 `1`,表明 MQTT 设备已连接。 #### 流程图
#### 代码 ```c++ /* https://bbs.eeworld.com.cn/thread-1293010-1-1.html */ #include
#if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_SAMD_NANO_33_IOT) || defined(ARDUINO_AVR_UNO_WIFI_REV2) #include
#elif defined(ARDUINO_SAMD_MKR1000) #include
#elif defined(ARDUINO_ARCH_ESP8266) #include
#elif defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_NICLA_VISION) || defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_GIGA) || defined(ARDUINO_OPTA) #include
#elif defined(ARDUINO_PORTENTA_C33) #include
#elif defined(ARDUINO_UNOR4_WIFI) #include
#endif #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h char ssid[] = SECRET_SSID; // your network SSID (name) char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP) // To connect with SSL/TLS: // 1) Change WiFiClient to WiFiSSLClient. // 2) Change port value from 1883 to 8883. // 3) Change broker value to a server with a known SSL/TLS root certificate // flashed in the WiFi module. WiFiClient wifiClient; MqttClient mqttClient(wifiClient); const char broker[] = "49.52.23.140"; int port = 1883; const char topic[] = "UNOR4/Send"; const long interval = 1000; unsigned long previousMillis = 0; int count = 0; void setup() { //Initialize serial and wait for port to open: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // attempt to connect to WiFi network: Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); while (WiFi.begin(ssid, pass) != WL_CONNECTED) { // failed, retry Serial.print("."); delay(5000); } Serial.println("You're connected to the network"); Serial.println(); Serial.println(WiFi.localIP()); // You can provide a unique client ID, if not set the library uses Arduino-millis() // Each client must have a unique client ID // mqttClient.setId("clientId"); // You can provide a username and password for authentication mqttClient.setUsernamePassword("UNOR4", "123456"); Serial.print("Attempting to connect to the MQTT broker: "); Serial.println(broker); if (!mqttClient.connect(broker, port)) { Serial.print("MQTT connection failed! Error code = "); Serial.println(mqttClient.connectError()); while (1); } Serial.println("You're connected to the MQTT broker!"); Serial.println(); } void loop() { // call poll() regularly to allow the library to send MQTT keep alives which // avoids being disconnected by the broker mqttClient.poll(); // to avoid having delays in loop, we'll use the strategy from BlinkWithoutDelay // see: File -> Examples -> 02.Digital -> BlinkWithoutDelay for more info unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // save the last time a message was sent previousMillis = currentMillis; Serial.print("Sending message to topic: "); Serial.println(topic); Serial.print("temperature: "); Serial.println(count); Serial.print("humidity: "); Serial.println(count); // send message, the Print interface can be used to set the message contents mqttClient.beginMessage(topic); mqttClient.print("Temperature: "); mqttClient.print(count); mqttClient.print("Humidity: "); mqttClient.print(count); mqttClient.endMessage(); Serial.println(); count++; } } ``` #### 演示
将发送的信息显示到 Home Assistant 智能家居平台,依次选择 `设置` - `设备与服务` - `MQTT` - `配置` - `监听主题` - 输入`主题` 名称 - 点击 `开始监听`, 便可接收信息,如下图所示
### 扩展任务:通过外部SHT40温湿度传感器,上传温湿度到HA,通过HA面板显示数据 对应论坛贴:[【Follow me第二季第2期】开发板读取 SHT40 数据并上传至 Home Assistant](https://bbs.eeworld.com.cn/thread-1294905-1-1.html) https://bbs.eeworld.com.cn/thread-1294905-1-1.html **所需元件**:Arduino UNO R4 WiFi 开发板、SHT40 温湿度传感器模块一个、Type-C 数据线一根 SHT40 温湿度传感器模块测试详见论坛帖:[【Follow me第二季第2期】SHT40温湿度模块获取环境数据 ](https://bbs.eeworld.com.cn/thread-1293824-1-1.html) . #### 流程图
#### 代码 ```c++ #include
#if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_SAMD_NANO_33_IOT) || defined(ARDUINO_AVR_UNO_WIFI_REV2) #include
#elif defined(ARDUINO_SAMD_MKR1000) #include
#elif defined(ARDUINO_ARCH_ESP8266) #include
#elif defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_NICLA_VISION) || defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_GIGA) || defined(ARDUINO_OPTA) #include
#elif defined(ARDUINO_PORTENTA_C33) #include
#elif defined(ARDUINO_UNOR4_WIFI) #include
#endif #include "Adafruit_SHT4x.h" #include "arduino_secrets.h" //please enter your sensitive data in the Secret tab/arduino_secrets.h char ssid[] = SECRET_SSID; // your network SSID (name) char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP) // To connect with SSL/TLS: // 1) Change WiFiClient to WiFiSSLClient. // 2) Change port value from 1883 to 8883. // 3) Change broker value to a server with a known SSL/TLS root certificate // flashed in the WiFi module. WiFiClient wifiClient; MqttClient mqttClient(wifiClient); const char broker[] = "49.52.23.140"; // IP address int port = 1883; // port const char topic[] = "UNOR4/Send"; // MQTT topic const long interval = 1000; unsigned long previousMillis = 0; int count = 0; Adafruit_SHT4x sht4 = Adafruit_SHT4x(); float temperature_date,humidity_date; sensors_event_t humidity, temp; static TwoWire& SHT_I2C_INTERFACE = Wire1; // Wire1 is the QWIIC port of Uno R4 board void setup() { //Initialize serial and wait for port to open: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("SHT40 test"); if (! sht4.begin(&SHT_I2C_INTERFACE)) { Serial.println("Couldn't find SHT40"); while (1) delay(1); } Serial.println("Found SHT40 sensor"); Serial.print("Serial number 0x"); Serial.println(sht4.readSerial(), HEX); // You can have 3 different precisions, higher precision takes longer sht4.setPrecision(SHT4X_HIGH_PRECISION); switch (sht4.getPrecision()) { case SHT4X_HIGH_PRECISION: Serial.println("High precision"); break; case SHT4X_MED_PRECISION: Serial.println("Med precision"); break; case SHT4X_LOW_PRECISION: Serial.println("Low precision"); break; } // You can have 6 different heater settings // higher heat and longer times uses more power // and reads will take longer too! sht4.setHeater(SHT4X_NO_HEATER); switch (sht4.getHeater()) { case SHT4X_NO_HEATER: Serial.println("No heater"); break; case SHT4X_HIGH_HEATER_1S: Serial.println("High heat for 1 second"); break; case SHT4X_HIGH_HEATER_100MS: Serial.println("High heat for 0.1 second"); break; case SHT4X_MED_HEATER_1S: Serial.println("Medium heat for 1 second"); break; case SHT4X_MED_HEATER_100MS: Serial.println("Medium heat for 0.1 second"); break; case SHT4X_LOW_HEATER_1S: Serial.println("Low heat for 1 second"); break; case SHT4X_LOW_HEATER_100MS: Serial.println("Low heat for 0.1 second"); break; } // attempt to connect to WiFi network: Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); while (WiFi.begin(ssid, pass) != WL_CONNECTED) { // failed, retry Serial.print("."); delay(5000); } Serial.println("You're connected to the network"); Serial.println(); Serial.println(WiFi.localIP()); // You can provide a unique client ID, if not set the library uses Arduino-millis() // Each client must have a unique client ID // mqttClient.setId("clientId"); // You can provide a username and password for authentication mqttClient.setUsernamePassword("UNOR4", "123456"); Serial.print("Attempting to connect to the MQTT broker: "); Serial.println(broker); if (!mqttClient.connect(broker, port)) { Serial.print("MQTT connection failed! Error code = "); Serial.println(mqttClient.connectError()); while (1); } Serial.println("You're connected to the MQTT broker!"); Serial.println(); } void loop() { // call poll() regularly to allow the library to send MQTT keep alives which // avoids being disconnected by the broker mqttClient.poll(); // to avoid having delays in loop, we'll use the strategy from BlinkWithoutDelay // see: File -> Examples -> 02.Digital -> BlinkWithoutDelay for more info unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // save the last time a message was sent previousMillis = currentMillis; Serial.print("Sending message to topic: "); Serial.println(topic); // Serial.print("temperature:"); // Serial.println(temperature_date); // Serial.print("humidity: "); // Serial.println(humidity_date); uint32_t timestamp = millis(); sht4.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data timestamp = millis() - timestamp; Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" degrees C"); Serial.print("Humidity: "); Serial.print(humidity.relative_humidity); Serial.println("% rH"); Serial.print("Read duration (ms): "); Serial.println(timestamp); temperature_date=temp.temperature; humidity_date=humidity.relative_humidity; // send message, the Print interface can be used to set the message contents mqttClient.beginMessage(topic); mqttClient.println("{"); mqttClient.print(" \"temperature\":"); mqttClient.print(temperature_date); mqttClient.println(","); mqttClient.print(" \"humidity\":"); mqttClient.println(humidity_date); mqttClient.print("}"); mqttClient.endMessage(); Serial.println(); count+=0.01; } } ``` #### MQTT 配置信息 前面测试程序中发送的是温度和湿度数据,因此需要在 Home Assistant 中增加传感器信息。 ```json # Example configuration.yaml entry mqtt: sensor: - name: "Temperature" state_topic: "UNOR4/Send" suggested_display_precision: 1 unit_of_measurement: "°C" value_template: "{{ value_json.temperature }}" - name: "Humidity" state_topic: "UNOR4/Send" unit_of_measurement: "%" value_template: "{{ value_json.humidity }}" ``` #### 演示
VID_20240926_183919-(online-video-cutter.com)
## 项目源码 视频录制见:[【Follow me第二季第2期】-【Follow me第二季第2期】-EEWORLD大学堂](https://training.eeworld.com.cn/video/41097) https://training.eeworld.com.cn/video/41097 代码工程见:[【Follow me第二季第2期】所有任务的工程源码](https://download.eeworld.com.cn/detail/lijinlei/634523) https://download.eeworld.com.cn/detail/lijinlei/634523 ## 项目总结 再次感谢微信群友们的无私帮助,在大佬们的聊天对话中学到很多专业知识,开拓了视野,特别是进阶任务和扩展任务的学习,不断解决问题并最终实现目标。 HomeAssistant 的镜像下载安装、开发板和 HA 的连接等经历,极大地丰富了我对物联网的认知,也感受到自己的渺小。 在阅读手册和访问官网链接等操作时明显感受到自身基础知识的匮乏,同时也激发了不断深入学习嵌入式开发的热情。 希望该活动越办越好,也希望越来越多的电子爱好者关注和参与 Follow me 活动,共同学习、分享和成长,用科技创造美好未来。
本帖最后由 lijinlei 于 2024-9-29 14:43 编辑
MCU 开发者和爱好者
点赞
(1)
回复评论 (1)
沙发
秦天qintian0303
点赞,完成质量很高,全面,感谢
在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞
(1)
2024-9-28 13:36
最新活动
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
随便看看
ARM与嵌入式linux的入门建议
哪位前辈推荐下VXWORKS方面的入门经典书籍啊?谢谢
CeRapiInitEx结果异常
同时使用两个定时中断的编程
如何设计单位增益FIR IP核
Linker error L6218E: Undefined symbol main (referred from kernel.o),怎么办?
S3C6410裸奔——复位输出nRSTOUT一直为低
人机法环料——不错的 看看——【质量知识】
Atmel Software Framework升级到3.21
关于进程中止的问题,求教!
为什么我的1602液晶屏写程序进去没反应
powerpc860 在vxworks下 和FPGA的以太网通信问题?
关于电池的充电过程曲线
请教一下UART2中断的问题!
MSP430Ware使用笔记 初始化XT1
单片机开发板
现在已经有五个网友回复我了,还有一个名额。。。。。。收到我站内信的赶紧回复我吧
FPGA高级技巧请教?
CC3200 Wifi 模块烧录程序
tft颜色显示错误
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复