# bs2x_duino **Repository Path**: gaoxiaolon2021/bs2x_duino ## Basic Information - **Project Name**: bs2x_duino - **Description**: bs2x的arduino版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-01 - **Last Updated**: 2025-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BS21E Arduino Core 基于华为海思BS21E芯片的Arduino核心包,支持BS21E系列开发板。 ## 特性 - **芯片支持**: 华为海思BS21E RISC-V 32位MCU - **主频**: 最高64MHz - **内存**: 160KB SRAM + 1MB Flash ⚠️ **内存有限,请参考 [内存使用指南](MEMORY_GUIDE.md)** - **外设支持**: GPIO, UART, I2C, SPI, ADC, PWM, USB2.0, NFC Tag等 - **开发板**: BS21E开发板及通用BS21E模块 ## 安装方法 ### 方法1: Arduino IDE板管理器安装(推荐) 1. 打开Arduino IDE 2. 进入 `文件` -> `首选项` 3. 在"附加开发板管理器网址"中添加: ``` https://gitee.com/gaoxiaolon2021/bs2x_duino/raw/master/package_bs21e_index.json ``` 4. 进入 `工具` -> `开发板` -> `开发板管理器` 5. 搜索"BS21E"并安装 ### 方法2: 手动安装 1. 下载本仓库到Arduino的hardware目录: ``` git clone https://gitee.com/gaoxiaolon2021/bs2x_duino.git ``` 2. 将文件夹重命名为 `bs21e` 3. 重启Arduino IDE ## 快速开始 ### 1. 选择开发板 在Arduino IDE中: - `工具` -> `开发板` -> `BS21E Boards` -> `BS21E Development Board` ### 2. 配置参数 - **CPU频率**: 64MHz (默认) - **Flash大小**: 1MB - **上传速度**: 921600 (默认) - **调试级别**: None (默认) ### 3. 连接硬件 1. 使用USB-C线连接BS21E开发板到电脑 2. 选择正确的串口:`工具` -> `端口` 3. 按住BOOT按钮,然后按RESET按钮进入下载模式 ### 4. 上传示例程序 ```cpp void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } ``` ## 引脚定义 ### BS21E开发板引脚映射 | 功能 | 引脚号 | 说明 | |------|--------|------| | LED_BUILTIN | 29 | 板载LED | | BUTTON_BUILTIN | 0 | 板载按钮 | | Serial RX | 1 | UART0接收 | | Serial TX | 2 | UART0发送 | | SDA | 4 | I2C数据线 | | SCL | 5 | I2C时钟线 | | MOSI | 6 | SPI主出从入 | | MISO | 7 | SPI主入从出 | | SCK | 8 | SPI时钟 | | SS | 9 | SPI片选 | | A0-A7 | 16-23 | 模拟输入 | | PWM0-PWM5 | 8-13 | PWM输出 | ## API参考 ### 数字I/O ```cpp pinMode(pin, mode); // 设置引脚模式 digitalWrite(pin, value); // 数字输出 int value = digitalRead(pin); // 数字输入 ``` ### 模拟I/O ```cpp int value = analogRead(pin); // 模拟输入 (0-4095) analogWrite(pin, value); // PWM输出 (0-255) ``` ### 串口通信 ```cpp Serial.begin(115200); // 初始化串口 Serial.print("Hello"); // 发送数据 Serial.println("World"); // 发送数据并换行 int data = Serial.read(); // 读取数据 ``` ### I2C通信 ```cpp #include Wire.begin(); // 初始化I2C Wire.beginTransmission(addr); // 开始传输 Wire.write(data); // 写入数据 Wire.endTransmission(); // 结束传输 ``` ### SPI通信 ```cpp #include SPI.begin(); // 初始化SPI SPI.transfer(data); // 传输数据 ``` ## 示例程序 ### 基础示例 - **Blink**: LED闪烁 - **DigitalReadSerial**: 数字输入读取 - **AnalogReadSerial**: 模拟输入读取 - **Fade**: PWM渐变 ### 通信示例 - **SerialEcho**: 串口回显 - **I2CScanner**: I2C设备扫描 - **SPILoopback**: SPI回环测试 ### 高级示例 - **Interrupt**: 外部中断 - **Timer**: 定时器使用 - **LowPower**: 低功耗模式 ## 库支持 ### 内置库 - **Wire**: I2C通信 - **SPI**: SPI通信 - **EEPROM**: EEPROM读写 - **BS21E_Examples**: 示例和工具库 ### 第三方库兼容性 大部分标准Arduino库都可以在BS21E上使用,包括: - Servo - LiquidCrystal - OneWire - DHT sensor libraries - Adafruit libraries ## 开发环境 ### 支持的IDE - Arduino IDE 1.8.x - Arduino IDE 2.x - PlatformIO - VS Code with Arduino extension ### 编译工具链 - RISC-V GCC 工具链 - 基于华为海思官方SDK ## 故障排除 ### 常见问题 **Q: 无法识别开发板** A: 检查USB驱动是否正确安装,确保选择了正确的串口 **Q: 上传失败** A: 确保进入下载模式(按住BOOT按钮,然后按RESET按钮) **Q: 串口无输出** A: 检查波特率设置,确保为115200 **Q: 编译错误** A: 确保选择了正确的开发板和配置参数 ### 调试技巧 1. 使用Serial.print()进行调试输出 2. 检查引脚连接和配置 3. 使用示例程序验证硬件功能 4. 查看编译器输出信息 ## 贡献 欢迎提交Issue和Pull Request来改进这个项目。 ### 开发指南 1. Fork本仓库 2. 创建功能分支 3. 提交更改 4. 创建Pull Request ## 许可证 本项目采用MIT许可证,详见LICENSE文件。 ## 支持 - **官方文档**: [BS21E开发指南](https://developer.hisilicon.com/) - **社区论坛**: [HiSilicon开发者社区](https://bbs.hisilicon.com/) - **技术支持**: support@hisilicon.com - **Gitee Issues**: [提交问题](https://gitee.com/gaoxiaolon2021/bs2x_duino/issues) ## 更新日志 ### v1.0.0 (2024-01-01) - 初始版本发布 - 支持BS21E开发板 - 基础GPIO、UART、I2C、SPI、ADC、PWM功能 - Arduino IDE集成 - 示例程序和文档 --- **注意**: 本项目仍在开发中,部分功能可能不完整。请关注更新并反馈问题。