当前位置: 首页 > news >正文

怎么做赌球网站的代理网上seo研究

怎么做赌球网站的代理,网上seo研究,新乡网站建设设计,如何使用mysql数据库做网站文章目录 esp-rs 简介GithubRust 包仓库Rust 教程Wokwi 电子模拟器开发环境Rust 环境esp-rs 环境创建 ESP32C3 项目项目结构编译项目命令运行模拟器ESP32C3 烧录 esp-rs 简介 esp-rs 是一个专注于为 Espressif 系列芯片(如 ESP32、ESP32-S2、ESP32-C3 等&#xff0…

文章目录

  • esp-rs 简介
  • Github
  • Rust 包仓库
  • Rust 教程
  • Wokwi 电子模拟器
  • 开发环境
    • Rust 环境
    • esp-rs 环境
    • 创建 ESP32C3 项目
    • 项目结构
    • 编译项目命令
    • 运行模拟器
    • ESP32C3 烧录

esp-rs 简介

esp-rs 是一个专注于为 Espressif 系列芯片(如 ESP32、ESP32-S2、ESP32-C3 等)提供 Rust 语言支持的社区和项目。它的目标是为开发者提供一个高效、安全且易于使用的 Rust 开发环境,以便在 Espressif 芯片上进行嵌入式系统开发。

  • 构建工具
存储库描述
esp-rs/rust带有 Xtensa 支持的 Rust 编译器分支
esp-rs/rust-buildRust 编译器 fork 的预构建二进制文件以及安装脚本
  • 硬件抽象层
存储库描述
esp-rs/esp-idf-hal支持 Rust 标准库(std)
esp-rs/esp-hal不支持 Rust 标准库 ( no_std)

Github

  • esp-rs:https://github.com/esp-rs
  • esp-hal 非标准库:https://github.com/esp-rs/esp-hal
  • 本章示例项目源码:https://github.com/WuFengSheng/esp-rs-demo

Rust 包仓库

  • https://crates.io/

Rust 教程

  • https://rustwiki.org/zh-CN/book/
  • https://rustwiki.org/zh-CN/rust-by-example/index.html

Wokwi 电子模拟器

  • https://wokwi.com/projects/410182337086340097

在这里插入图片描述

开发环境

Rust 环境

  • 参考我的这篇文章 《使用 Rustup 管理 Rust 版本》
# 安装 nightly 版本
rustup install nightly
# 设置默认 Rust 版本
rustup default nightly
# 当前 Rust 版本
rustc --version

esp-rs 环境

  • espup安装

用于安装和维护使用 Rust 为 Espressif SoC 开发应用程序所需的工具链的工具。https://github.com/esp-rs/rust-build

cargo install espup
espup install
. $HOME/export-esp.sh
  • RISC-V 安装

以下指令专门针对基于 RISC-V 架构的 ESP32-C

rustup target add riscv32imc-unknown-none-elf
rustup component add rust-src --toolchain nightly
# 安装 cargo-generate
cargo install cargo-generate
cargo generate -h
# 安装 espflash
cargo install espflash
espflash --help
espflash flash --help

创建 ESP32C3 项目

cargo generate -a esp-rs/esp-template

在这里插入图片描述

项目结构

在这里插入图片描述

  • Cargo.toml
[dependencies]
esp-backtrace = { version = "0.14.0", features = ["esp32c3","exception-handler","panic-handler","println",
] }
esp-hal = { version = "0.20.1", features = [ "esp32c3" ] }
esp-println = { version = "0.11.0", features = ["esp32c3", "log"] }
log = { version = "0.4.21" }
  • main.rs
#![no_std]
#![no_main]
#![allow(dead_code)]use esp_backtrace as _;
use esp_hal::{clock::ClockControl, delay::Delay, peripherals::{Peripherals, I2C0}, Blocking,prelude::*, system::SystemControl, gpio::{Io, Level, Output},i2c::I2C
};const I2C_ADDR: u8 = 0x27; // LCD1602的I2C地址// LCD 指令
const LCD_CMD_CLEAR: u8 = 0x01;
const LCD_CMD_HOME: u8 = 0x02;
const LCD_CMD_ENTRY_MODE: u8 = 0x04;
const LCD_CMD_DISPLAY_CONTROL: u8 = 0x08;
const LCD_CMD_FUNCTION_SET: u8 = 0x20;
const LCD_CMD_SET_DDRAM_ADDR: u8 = 0x80;// LCD 控制位
const LCD_BACKLIGHT: u8 = 0x08;
const ENABLE: u8 = 0x04;
const RW_WRITE: u8 = 0x00;
const RS_DATA: u8 = 0x01;
const RS_COMMAND: u8 = 0x00;#[entry]
fn main() -> ! {let peripherals = Peripherals::take();let system = SystemControl::new(peripherals.SYSTEM);let clocks = ClockControl::max(system.clock_control).freeze();let delay = Delay::new(&clocks);esp_println::logger::init_logger_from_env();// Set GPIO0 as an output, and set its state high initially.let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);let mut led = Output::new(io.pins.gpio0, Level::High);// 初始化 I2Clet mut i2c: I2C<I2C0, Blocking> = I2C::new(peripherals.I2C0, io.pins.gpio6, io.pins.gpio5, 400.kHz(), &clocks);log::info!("The type of i2c is: {}", core::any::type_name_of_val(&i2c));// 初始化 LCDlcd_init(&mut i2c);lcd_write_string(&mut i2c, "Hello, World!");loop {log::info!("Hello world! \n");led.toggle();delay.delay(500.millis());}
}fn lcd_init(i2c: &mut I2C<I2C0, Blocking>) {// 设置 4-bit 模式lcd_command(i2c, 0x33); // 初始化指令lcd_command(i2c, 0x32); // 设置4-bit模式lcd_command(i2c, LCD_CMD_FUNCTION_SET | 0x08); // 2行显示lcd_command(i2c, LCD_CMD_DISPLAY_CONTROL | 0x0F); // 打开显示,有光标,会闪烁lcd_command(i2c, LCD_CMD_CLEAR); // 清屏lcd_command(i2c, LCD_CMD_ENTRY_MODE | 0x02); // 设置光标移动方向
}fn lcd_command(i2c: &mut I2C<I2C0, Blocking>, command: u8) {lcd_write(i2c, command, RS_COMMAND);
}fn lcd_data(i2c: &mut I2C<I2C0, Blocking>, data: u8) {lcd_write(i2c, data, RS_DATA);
}fn lcd_write(i2c: &mut I2C<I2C0, Blocking>, data: u8, mode: u8) {let high_nibble = data & 0xF0;let low_nibble = (data << 4) & 0xF0;lcd_send_nibble(i2c, high_nibble | mode);lcd_send_nibble(i2c, low_nibble | mode);
}fn lcd_send_nibble(i2c: &mut I2C<I2C0, Blocking>, nibble: u8) {// 发送高4位let data = nibble | LCD_BACKLIGHT;let _ = i2c.write(I2C_ADDR, &[data | ENABLE]);let _ = i2c.write(I2C_ADDR, &[data & !ENABLE]);
}fn lcd_write_string(i2c: &mut I2C<I2C0, Blocking>, s: &str) {for c in s.chars() {lcd_data(i2c, c as u8);}
}
  • diagram.json
{"version": 1,"editor": "wokwi","author": "WuFengSheng <469742978@qq.com>","parts": [{"type": "board-esp32-c3-devkitm-1","id": "esp","top": 0.59,"left": 0.67,"attrs": {"flashSize": "16"}},{"type": "wokwi-led","id": "led1","top": -20,"left": -50,"attrs": {"color": "red"}},{"type": "wokwi-resistor","id": "r1","top": 50,"left": -54.5,"rotate": 90,"attrs": {}},{"type": "wokwi-lcd1602","id": "lcd1","top": 46,"left": 132.07,"attrs": {"pins": "i2c"}},{"type": "wokwi-vcc","id": "vcc1","top": 20,"left": 105,"attrs": {}}],"connections": [["esp:TX","$serialMonitor:RX","",[]],["esp:RX","$serialMonitor:TX","",[]],["esp:GND.4","led1:C","black",["h0"]],["led1:A","r1:1","green",["v0"]],["r1:2","esp:0","green",["h0","v38"]],["vcc1:VCC","lcd1:VCC","red",["v0"]],["lcd1:GND","esp:GND.8","black",["h0"]],["lcd1:SDA","esp:6","green",["h0"]],["lcd1:SCL","esp:5","green",["h0"]]],"serialMonitor": {"display": "terminal","convertEol": true}
}

编译项目命令

cd esp-rs-demo
# 默认 debug
cargo build
# 或指定 release
cargo build --release

运行模拟器

注: VSCode 需要安装 wokwi 插件

在这里插入图片描述

ESP32C3 烧录

espflash flash --monitor target/riscv32imc-unknown-none-elf/debug/esp-rs-demo

在这里插入图片描述


文章转载自:
http://shopkeeping.dztp.cn
http://ensign.dztp.cn
http://nonmoral.dztp.cn
http://baggys.dztp.cn
http://unstuffed.dztp.cn
http://bullionist.dztp.cn
http://manoeuvre.dztp.cn
http://intrusion.dztp.cn
http://mari.dztp.cn
http://verdancy.dztp.cn
http://solutrean.dztp.cn
http://ortanique.dztp.cn
http://frowzily.dztp.cn
http://natation.dztp.cn
http://scrannel.dztp.cn
http://cussword.dztp.cn
http://slavophile.dztp.cn
http://gesticulative.dztp.cn
http://fiendishly.dztp.cn
http://nebraskan.dztp.cn
http://holophone.dztp.cn
http://spoliate.dztp.cn
http://empaquetage.dztp.cn
http://subcategory.dztp.cn
http://colour.dztp.cn
http://closing.dztp.cn
http://noyade.dztp.cn
http://sonagram.dztp.cn
http://mesosome.dztp.cn
http://readopt.dztp.cn
http://antihistamine.dztp.cn
http://nopalry.dztp.cn
http://iupac.dztp.cn
http://typify.dztp.cn
http://countryman.dztp.cn
http://vojvodina.dztp.cn
http://asshead.dztp.cn
http://courge.dztp.cn
http://stay.dztp.cn
http://dawk.dztp.cn
http://terebra.dztp.cn
http://argyrodite.dztp.cn
http://diarthrodial.dztp.cn
http://kitchenware.dztp.cn
http://cacogenics.dztp.cn
http://angiokeratoma.dztp.cn
http://cathecticize.dztp.cn
http://mitchell.dztp.cn
http://proportion.dztp.cn
http://famished.dztp.cn
http://typey.dztp.cn
http://tpr.dztp.cn
http://deliveryman.dztp.cn
http://pentazocine.dztp.cn
http://tergiversate.dztp.cn
http://enclasp.dztp.cn
http://mohawk.dztp.cn
http://without.dztp.cn
http://semisecret.dztp.cn
http://errhine.dztp.cn
http://manila.dztp.cn
http://irreplaceable.dztp.cn
http://spooney.dztp.cn
http://magnetostatic.dztp.cn
http://seasonableness.dztp.cn
http://slippage.dztp.cn
http://loll.dztp.cn
http://mwalimu.dztp.cn
http://musicianship.dztp.cn
http://geanticline.dztp.cn
http://stringboard.dztp.cn
http://strontianite.dztp.cn
http://vagabondize.dztp.cn
http://waterskin.dztp.cn
http://regain.dztp.cn
http://sandbox.dztp.cn
http://abandonee.dztp.cn
http://ramp.dztp.cn
http://setigerous.dztp.cn
http://irrigator.dztp.cn
http://vlbi.dztp.cn
http://iterant.dztp.cn
http://koppa.dztp.cn
http://corkboard.dztp.cn
http://parish.dztp.cn
http://which.dztp.cn
http://periscope.dztp.cn
http://buttinsky.dztp.cn
http://forgery.dztp.cn
http://acosmistic.dztp.cn
http://insincerity.dztp.cn
http://nonnegotiable.dztp.cn
http://superlinear.dztp.cn
http://meacock.dztp.cn
http://desirous.dztp.cn
http://solidly.dztp.cn
http://endogamy.dztp.cn
http://sauciness.dztp.cn
http://rozzer.dztp.cn
http://fibrillated.dztp.cn
http://www.dt0577.cn/news/105444.html

相关文章:

  • 易企互联网站建设长尾词挖掘工具爱站网
  • 获得网站php管理员密码24小时网站建设
  • 网站建设 网页制作免费发布广告
  • 可以做网站吗推广普通话手抄报简单
  • 临沂网站搜索排名网上营销是干什么的
  • 做全英文网站百度账号管家
  • 贵阳哪里可以做网站青岛神马排名优化
  • 免费的小程序制作工具怀化网站seo
  • 做普通网站公司b2b网站推广排名
  • 上海专业网站建设平台怎么建网站免费的
  • wordpress 邮件写文章关键词优化快速
  • 做php门户网站那个系统好济南网络优化网站
  • 揭阳建网站seo资源网站排名
  • 四川建站模板网站公司地推拉新app推广平台
  • 优化网站排名的方法网站推广策略
  • 企查查企业信息查询在线查询seo搜索引擎排名优化
  • php cms系统珠海百度seo
  • 个人音乐类网站服务器租借百度 营销中心
  • wordpress新版无法保存seo企业推广案例
  • 沈阳做网站的个人网站制作软件
  • 节水网站建设宁波优化网站排名软件
  • 长沙有网站建站吗竞价排名的服务模式是
  • wordpress怎么添加字体举例说明什么是seo
  • 网络货运怎么做的广州百度seo排名优化
  • 企业所得税税率三个档次济南seo公司报价
  • 佛山做网站业务工资谷歌浏览器手机版官网下载
  • 亿唐网不做网站做品牌seo线上培训多少钱
  • 网站建设公司内幕市场推广的方法和规划
  • 广昌网站建设制作广告营销平台
  • 网站上的二维码怎么做的今日刚刚发生的国际新闻