社区首页
技术讨论创新帖
全部新帖
资料区
社区活动
联系管理员
★ 社区积分制度
★ 新手必读
★ 申请版主★
首页
|
电子技术
|
嵌入式
模拟电子
单片机
电源管理
传感器
半导体
电子应用
|
工业控制
物联网
汽车电子
网络通信
医疗电子
手机便携
测试测量
安防电子
家用电子
机器人
新能源
电子头条
|
社区
|
论坛
测评
博客
大学堂
|
下载
|
下载中心
电路图
精品文集
电路图
|
参考设计
|
Datasheet
|
活动
|
直播
datasheet
datasheet
文章
搜索
登录
注册
论坛
切换旧版
电子工程世界-论坛
»
论坛
›
专业技术中心
›
DigiKey得捷技术专区
›
【Follow me第二季第4期】任务一:搭建环境并点亮RGBLED ...
返回列表
发新帖
回复
阅
161
|
回
0
ICS
当前离线
一粒金砂(中级)
最后登录
2024-12-2
在线时间
21 小时
威望
89分
芯积分
268分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
ICS
26
帖子
5
TA的资源
一粒金砂(中级)
+ 好友
私信
发表于2024-11-27 18:26
显示全部楼层
【Follow me第二季第4期】任务一:搭建环境并点亮RGBLED&串口输出
[复制链接]
[Follow me第二季第4期!与得捷一起解锁开发板超能力!](https://www.eeworld.com.cn/huodong/digikey_follow_me_2024_04/?sid=102)
--- ### 任务准备 1. 硬件准备 1. Arduino® Nano RP2040 Connect开发板 2. USB-Micro B 数据线 2. 软件准备 1. 安装Arduino IDE(确保版本支持RP2040芯片)或者 PlatformIO 2. 安装RP2040的Board支持包 ### 从零搭建环境(以PlatformIO为例) 1. 安装 VS Code 访问[Download Visual Studio Code - Mac, Linux, Windows](https://code.visualstudio.com/Download)下载**System Installer**的安装包,根据步骤安装即可。 2. 安装 PlatformIO IDE 1. 在VS Code中点击左边栏的拓展(Ctrl+Shift+X) 2. 点击搜索框,搜索`PlatformIO IDE` 3. 点击安装 3. 安装RP2040支持包 1. 在VS Code中点击左边栏的PlatformIO 2. 点击Open->New Project 3. 在Board中选择Arduino Nano RP2040 Connect 4. 点击Finsh,等待非常长一段时间(示网络情况而定) ### Blink三色LED / 串口打印Hello DigiKey & EEWorld! 一开始以为,串口打印和Blink应该是很简单的事情,结果事实上并不简单。从上面的框图和介绍中可知,RGB LED连接的并不是 RP2040,而是一个叫NINA-W102的东西,一看介绍:240MHz 32位双核Xtensa LX6处理器!!!这不是ESP32嘛!!!并没有直接可以通过RP2040操作RGB LED的引脚,必须先通过SPI与ESP32进行通讯,然后再由ESP 32对RGB LED进行操作。不过官方文档给出了如何操作NINA的库和例程:[Control Built-in RGB LED over Wi-Fi with Nano RP2040 Connect | Arduino Documentation](https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-web-server-rgb/),例程如下: ```C++ #include
#include
# 需要在Platform IO 中安装 WiFi NINA void fadeLED(NinaPin ledPin) { for (int brightness = 255; brightness >= 0; brightness--) { analogWrite(ledPin, brightness); delay(10); } for (int brightness = 0; brightness <= 255; brightness++) { analogWrite(ledPin, brightness); delay(10); } } void setup() { Serial.begin(115200); pinMode(LEDR, OUTPUT); pinMode(LEDG, OUTPUT); pinMode(LEDB, OUTPUT); digitalWrite(LEDR, LOW); digitalWrite(LEDG, LOW); digitalWrite(LEDB, LOW); } void loop() { Serial.println("Hello DigiKey & EEWorld!"); fadeLED(LEDR); fadeLED(LEDG); fadeLED(LEDB); } ``` 在`wifi_drv.cpp`可以看到具体实现如下: ```c++ …… void WiFiDrv::pinMode(uint8_t pin, uint8_t mode) { WAIT_FOR_SLAVE_SELECT(); // Send Command SpiDrv::sendCmd(SET_PIN_MODE, PARAM_NUMS_2); SpiDrv::sendParam((uint8_t*)&pin, 1, NO_LAST_PARAM); SpiDrv::sendParam((uint8_t*)&mode, 1, LAST_PARAM); // pad to multiple of 4 SpiDrv::readChar(); SpiDrv::spiSlaveDeselect(); //Wait the reply elaboration SpiDrv::waitForSlaveReady(); SpiDrv::spiSlaveSelect(); // Wait for reply uint8_t _data = 0; uint8_t _dataLen = 0; if (!SpiDrv::waitResponseCmd(SET_PIN_MODE, PARAM_NUMS_1, &_data, &_dataLen)) { WARN("error waitResponse"); _data = WL_FAILURE; } SpiDrv::spiSlaveDeselect(); } PinStatus WiFiDrv::digitalRead(uint8_t pin) { WAIT_FOR_SLAVE_SELECT(); // Send Command SpiDrv::sendCmd(GET_DIGITAL_READ, PARAM_NUMS_1); SpiDrv::sendParam((uint8_t*)&pin, 1, LAST_PARAM); // pad to multiple of 4 SpiDrv::readChar(); SpiDrv::readChar(); SpiDrv::spiSlaveDeselect(); //Wait the reply elaboration SpiDrv::waitForSlaveReady(); SpiDrv::spiSlaveSelect(); // Wait for reply uint8_t _data = 0; uint8_t _dataLen = 0; if (!SpiDrv::waitResponseCmd(GET_DIGITAL_READ, PARAM_NUMS_1, &_data, &_dataLen)) { WARN("error waitResponse"); _data = WL_FAILURE; } SpiDrv::spiSlaveDeselect(); if (_data == 1) return HIGH; else return LOW; } void WiFiDrv::digitalWrite(uint8_t pin, uint8_t value) { WAIT_FOR_SLAVE_SELECT(); // Send Command SpiDrv::sendCmd(SET_DIGITAL_WRITE, PARAM_NUMS_2); SpiDrv::sendParam((uint8_t*)&pin, 1, NO_LAST_PARAM); SpiDrv::sendParam((uint8_t*)&value, 1, LAST_PARAM); // pad to multiple of 4 SpiDrv::readChar(); SpiDrv::spiSlaveDeselect(); //Wait the reply elaboration SpiDrv::waitForSlaveReady(); SpiDrv::spiSlaveSelect(); // Wait for reply uint8_t _data = 0; uint8_t _dataLen = 0; if (!SpiDrv::waitResponseCmd(SET_DIGITAL_WRITE, PARAM_NUMS_1, &_data, &_dataLen)) { WARN("error waitResponse"); _data = WL_FAILURE; } SpiDrv::spiSlaveDeselect(); } uint16_t WiFiDrv::analogRead(uint8_t adc_channel) { WAIT_FOR_SLAVE_SELECT(); // Send Command SpiDrv::sendCmd(GET_ANALOG_READ, PARAM_NUMS_1); SpiDrv::sendParam((uint8_t*)&adc_channel, 1, LAST_PARAM); // pad to multiple of 4 SpiDrv::readChar(); SpiDrv::readChar(); SpiDrv::spiSlaveDeselect(); //Wait the reply elaboration SpiDrv::waitForSlaveReady(); SpiDrv::spiSlaveSelect(); // Wait for reply uint16_t adc_raw = 0; uint8_t adc_raw_len = 0; if (!SpiDrv::waitResponseCmd(GET_ANALOG_READ, PARAM_NUMS_1, (uint8_t*)&adc_raw, &adc_raw_len)) { WARN("error waitResponse"); } SpiDrv::spiSlaveDeselect(); return adc_raw; } void WiFiDrv::analogWrite(uint8_t pin, uint8_t value) { WAIT_FOR_SLAVE_SELECT(); // Send Command SpiDrv::sendCmd(SET_ANALOG_WRITE, PARAM_NUMS_2); SpiDrv::sendParam((uint8_t*)&pin, 1, NO_LAST_PARAM); SpiDrv::sendParam((uint8_t*)&value, 1, LAST_PARAM); // pad to multiple of 4 SpiDrv::readChar(); SpiDrv::spiSlaveDeselect(); //Wait the reply elaboration SpiDrv::waitForSlaveReady(); SpiDrv::spiSlaveSelect(); // Wait for reply uint8_t _data = 0; uint8_t _dataLen = 0; if (!SpiDrv::waitResponseCmd(SET_ANALOG_WRITE, PARAM_NUMS_1, &_data, &_dataLen)) { WARN("error waitResponse"); _data = WL_FAILURE; } SpiDrv::spiSlaveDeselect(); } …… ``` ### 如何烧录 短接REC到GND,双击按键即可进入烧录模式,将编译好的.uf2拖入即可。 ### 项目文件及固件
firmware.uf2
(154.5 KB, 下载次数: 0)
7天前
上传
点击文件名下载附件 BLINK固件
EEWORLD2.4-任务1.zip
(3.51 KB, 下载次数: 0)
7天前
上传
点击文件名下载附件 源代码 ### 实验截图
### 参考资料 [Nano RP2040 Connect | Arduino Documentation](https://docs.arduino.cc/hardware/nano-rp2040-connect/) [Control Built-in RGB LED over Wi-Fi with Nano RP2040 Connect | Arduino Documentation](https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-web-server-rgb/) [ABX00053-datasheet.pdf](https://docs.arduino.cc/resources/datasheets/ABX00053-datasheet.pdf)
RP2040
此帖出自
DigiKey得捷技术专区论坛
回复
分享
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
举报
提升卡
变色卡
千斤顶
返回列表
发新帖
回复
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
活动
更多>>
评论有奖:元器件采购的秘密法宝,助你做个自带“松弛感”的职场人!
免费申请测评 | RDK X3机器人开发套件
中星联华直播 | 高速信号完整性分析与测试 — “码”上行动系列线上讲堂
新栏目器件口碑专辑上线~快来点评吧!
2024 DigiKey 应用说:大模型时代的智能汽车
有奖直播报名中!抢占工业4.1先机 文晔科技日等你来!
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
开源项目
更多>>
使用 Analog Devices 的 LT3467AIS6 的参考设计
LT3091IR 2 端子电流源的典型应用
AD8139,差分驱动器评估板
Aper-Oculus:面向 Xilinx Kria SOM 架构上的 SLVS-EC 和 MIPI 传感器的开源高速相机开发板
高速CAN收发器的不同应用领域
5050双色补光灯
基于JQ8900模块,可用于语音播报等
MCP1827 1.5A、低电压、低静态电流 LDO 可调输出稳压器的典型应用
EVAL-AD7873EBZ,用于评估 AD7873 电阻式触摸屏控制器的评估板
USB监视器V1.3(stc)
随便看看
虚拟电厂中储能技术的应用---安科瑞张云
【摘要】虚拟电厂利用*进的通信技术,将分布式电源、储能装置和可控负荷等资源广泛连接,并采用特定的控制策略进行资源的协同聚合和智能管理,从而具备与电网能量互动的能力。在虚拟电厂的运作中,储能设备不仅可以有效储存可再生能源的过剩电力,还能在需要 ...
时源芯微——EMC前车灯案例
常用的DSP芯片
89C52 IO模拟RS232通讯
滑模面
这是芯片烧了么?
DSP的CMD文件分析(一)[转]
看不懂这个算法,怎么移植到DSP5502上?
查找数据手册?
搜索
EEWorld Datasheet 技术支持
热门标签
源代码
单片机
放大器
TI
ST
电源
分立器件
传感器
测试测量
模拟
红外线测温仪
十进制计数器
串行外设接口
无源无线开关
介质谐振器
钴酸锂电池
永磁电机
谐波检测
下拉电阻
电介质
相关文章
更多>>
中国汽车芯片联盟发布白名单 2.0:覆盖超 1800 款产品,面向车企内部参考使用
12 月 4 日消息,中国汽车芯片产业创新战略联盟(简称“中国汽车芯片联盟”)本周一宣布,联盟汽车芯片白名单 2.0 发布,覆盖车身、底盘、动力、座舱、智驾、整车控制等各应用领域中的 10 大类芯片
仿生肢体让患者获得真实感知功能
几十年来,科学家一直致力于恢复四肢缺失或瘫痪人士的行动能力,然而,现有的仿生肢体并非尽善尽美。美国匹兹堡大学生物工程师罗伯特·冈特表示,要想真正恢复患者的运动能力,关键在于恢复他们对触觉和温度的感知
消息称英特尔评估多名CEO潜在人选,包括前董事会成员陈立武等外部人士
“电子墨水”可监测脑电波,有望拓展非侵入式脑机接口技术应用
首款NPU和首款64位,德州仪器C2000推出诚意满满的升级路线图
AMD Zen4处理器循环缓冲区功能被悄然禁用
美国发布新半导体出口管制措施 光刻机巨头ASML:正在评估潜在影响
消息称苹果有望2026下半年推出折叠iPhone,并重振折叠屏手机市场
美国升级对华半导体管制,140家中国半导体公司被列入“实体清单”
安森美二十五周年:唯有创新,才可持续
新帖速递
STM32和无源蜂鸣器播放声音的问题
车规级AECQ200介绍,混合铝电解电容器的选择
嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验
OPA847IDBVR运放器国产替代
AG32VF407测试UART
【得捷电子Follow Me第二期】第一章 收到货物的分享
请问这个红外接收头是什么型号?能用哪个型号代替?谢谢
出售全新未拆封ZYNQ 7Z020 FPGA核心板
用在锂电池供电的水表设置上的LORA模块,当有100块水表集中安装在一个楼道内时,节能
请问一下,当某个端口被设置为 RX0后,这个端口的输入输出方向还有必要设置吗
今年怎么这么难,比疫情时还难,三十了面临失业好迷茫
请教稳压管测试问题
【小华HC32F448测评】关于小华半导体的UART中断发送和PRINTF构造和重定向
【BIGTREETECH PI开发板】 HDMI输出测试
【BIGTREETECH PI开发板】+08.音频测试(zmj)
免费申请测评:RDK X3机器人开发套件
RDK X3是一款面向生态开发者的嵌入式AI开发板,具备5Tops的端侧推理能力,40pin接口兼容树莓派。搭载了伯努利2.0BPU和4核ARM A53处理器。拥有先进的ISP处理算法,使得在宽动态、低照度场景下,也能得到高质量的图像;同时具备强大的视频处理能力,可同时处理多路Camera Sensor的输入并支持H.264/H.265编解码。
查看 »
等待很久的STM32N6终于要发布了!
ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!报名峰会,还能赢【开发板、京东卡】呦~12月12日14:00不见不散!
查看 »
有奖直播报名| 高可靠性IGBT新选择 —— 安世半导体650V IGBT
【直播时间】12月19日(周四)下午15:00-16:30
【直播好礼】定制双肩商务包、30元京东卡、吸管玻璃杯
查看 »
安世半导体直播报名中
直播主题:安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
直播时间:12月17日(周二)下午14:00
报名就有机会获得:定制双肩商务包、30元京东卡、吸管玻璃杯
查看 »
PI 电源小课堂 | 无 DC-DC 变换实现多路高精度输出反激电源
时间:即日起-12月15日
看视频学习电源干货,答题赢取京东卡!
查看 »
Littelfuse 新品赋能电子产品安全可靠并高效, 10+挑战等你探索!
Littelfuse 应用赋能星球,覆盖了诸多应用痛点及解决办法,邀请工程师一起探索,解锁更多设计力!
查看 »
下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新
活动时间:即日起-2024年12月31日
如何参与:点击活动页内您想了解的模块,找到资料下载即可参与抽奖,活动结束后统一发奖!
查看 »
有奖活动|英飞凌高密度双相电源模块为高性能运算平台而生
活动时间:即日起-12月15日
活动奖励:蓝牙音箱、氮化镓充电器套装、黑色小背包
查看 »
本月精选下载推荐:
Vishay——选型-汽车级表面贴装和通孔超快整流器
查看 »
本周精选下载推荐:电源管理基础Dummies
本周小编给大家带来一本超简单、超干货的电子书——《电源管理基础Dummies》!内容深入浅出,排版舒服简洁,分分钟能get到电源管理最核心的知识内容。
查看 »
关闭
站长推荐
1
/10
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
电信业务审批[2006]字第258号函
京公网安备 11010802033920号
Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复
返回顶部
返回列表
论坛首页
版块列表
专业技术中心
TI技术论坛
ST传感器与低功耗无线技术论坛
ADI参考电路
DigiKey得捷技术专区
ADI · 世健工业技术
电子技术交流
嵌入式系统
单片机
国产芯片交流
电机驱动控制
FPGA/CPLD
模拟电子
电源技术
PCB技术
RF/无线
传感器
综合技术交流
下载中心专版
大学堂专版
测评中心专版
创意与实践
电子竞赛
DIY/开源硬件专区
淘e淘
创意市集
行业应用
汽车电子
移动便携
医疗电子
工控电子
安防电子
休息一下
聊聊、笑笑、闹闹
工作这点儿事
为我们提意见&公告
EEWorld颁奖专区
信息发布
最新帖子
最新帖子
最新回复
精华
消灭零回复
测评中心
活动中心
积分兑换
E金币兑换
芯积分
厂商专区
TI技术论坛
ST传感器与低功耗无线技术论坛