From c1ff956227271a5f0c17a095cba03584362ccbbd Mon Sep 17 00:00:00 2001 From: herculeshu <1743021786@qq.com> Date: Mon, 23 Aug 2021 16:49:21 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9IO9IO10=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改IO9IO10相关内容 --- machine/GPIO/README.md | 49 ++++++------------------------------------ machine/I2C/README.md | 10 ++++----- 2 files changed, 11 insertions(+), 48 deletions(-) diff --git a/machine/GPIO/README.md b/machine/GPIO/README.md index 51d9c2c..347a636 100644 --- a/machine/GPIO/README.md +++ b/machine/GPIO/README.md @@ -86,7 +86,7 @@   其中引脚号直接对应于Waffle Nano 硬件实际物理引脚排布。 -  并且注意,在硬件屏幕接入到Waffle Nano开发板上时,引脚号为`IO6`、`IO7`、`IO8`、`IO11`硬件引脚(下图中带有*号的引脚)已被屏幕占用,不建议二次使用。`IO2`在程序上传时需要保持拉低状态。 +  并且注意,在硬件屏幕接入到Waffle Nano开发板上时,引脚号为`IO6`、`IO7`、`IO8`、`IO11`硬件引脚(下图中带有*号的引脚)已被屏幕占用,不建议二次使用。`IO2`在程序上传时需要保持拉低状态。`IO9`、`IO10`作为内部IIC总线通信使用,内部将始终存在上拉电阻,保持上拉状态。`IO3`、`IO4`作为编程串口被持续占用,板子未将此引出。 ![img](Image/BoardPin.jpg) @@ -97,7 +97,6 @@ | GPIO0 | | UART1 TXD | | SPI1 CK | -| JTAG TD0 | | PWM3 OUT | | I2C1 SDA | @@ -109,10 +108,8 @@ | GPIO1 | | UART1 RXD | | SPI1 RXD | -| JTAG TCK | | PWM4 OUT | | I2C1 SCL | -| BT FREQ |   pin 2的功能如下: @@ -120,11 +117,8 @@ | **功能** | | ---------- | | GPIO2 | -| UART1 RTS | | SPI1 TXD | -| JTAG TRSTN | | PWM2 OUT | -| SSI CLK | @@ -137,7 +131,6 @@ | SPI0 CSN | | PWM2 OUT | | I2C0 MCLK | -| BT STATUS |   pin 6的功能如下: @@ -147,54 +140,40 @@ | UART1 TXD | | SPI0 CK | | PWM3 OUT | -| I2S0 TX | -| COEX switch |   pin 7的功能如下: | **功能** | | --------- | | GPIO7 | -| UART1 CTS | | SPI0 RXD | | PWM0 OUT | -| I2S0 BCLK | -| BT ACTIVE |   pin 8的功能如下: | **功能** | | ----------- | | GPIO8 | -| UART1 RTS | | SPI0 TXD | | PWM1 OUT | -| I2S0 WS | -| WLAN ACTIVE | -  pin 9的功能如下: +  pin 10的功能如下: | **功能** | | --------- | -| GPIO9 | +| GPIO10 | | I2C0 SCL | -| UART2 RTS | -| SDIO D2 | | SPI0 TXD | | PWM0 OUT | -| I2S0 MCLK | -  pin 10的功能如下: +  pin 9的功能如下: | **功能** | | --------- | -| GPIO10 | +| GPIO9 | | I2C0 SDA | -| UART2 CTS | -| SDIO D3 | | SPI0 CK | | PWM1 OUT | -| I2S0 TX |   pin 11的功能如下: @@ -202,45 +181,29 @@ | ------------ | | GPIO11 | | UART2 TXD | -| SDIO CMD | -| SDIO RXD | | PWM2 OUT | -| RF TX_EN_EXT | -| I2S0 RX |   pin 12的功能如下: | **功能** | | ------------ | | GPIO12 | -| SUART2 RXD | -| SDIO CLK | -| SDIO CSN | | PWM3 OUT | -| RF RX_EN_EXT | -| I2S0 BCLK |   pin 13的功能如下: | **功能** | | --------- | -| SSI DATA | | UART0 TXD | -| UART2 RTS | -| SDIO D0 | | GPIO13 | | PWM4 OUT | | I2C0 SDA | -| I2S0 WS |   pin 14的功能如下: | **功能** | | --------- | -| SSI CLK | | UART0 RXD | -| UART2 CTS | -| SDIO D1 | | GPIO14 | | PWM5 OUT | | I2C0 SCL | @@ -373,7 +336,7 @@ pin.init(Pin.OUT) #初始化13号引脚为输出模式   函数说明:获取或设置引脚拉电阻状态,根据引脚的拉电阻状态返回0(无拉电阻)或1(上拉电阻)或2(下拉电阻)。 -  注意:不带参数时是读取引脚拉电阻状态,带参数时是设置引脚拉电阻状态。 +  注意:1.不带参数时是读取引脚拉电阻状态,带参数时是设置引脚拉电阻状态。2.`IO9`和`IO10`默认为恒定上拉状态。   value : diff --git a/machine/I2C/README.md b/machine/I2C/README.md index 53c97eb..5b2bc94 100644 --- a/machine/I2C/README.md +++ b/machine/I2C/README.md @@ -108,12 +108,12 @@ waffle nano 共有7个引脚可以用作 I²C 的通讯引脚。拥有 2 个 I²C 总线端口,根据用户的配置,总线端口可以用作 I²C 主机。 -> 其中板载内置传感器连接到引脚:`Pin9,Pin10`。所以在操作板载传感器时需配置 `0` 号端口 I²C 总线对象,比如 `i2c = I2C(0, sda=Pin(10), scl=Pin(9)`。 +> 其中板载内置传感器连接到引脚:`Pin9,Pin10`。所以在操作板载传感器时需配置 `0` 号端口 I²C 总线对象,比如 `i2c = I2C(0, sda=Pin(9), scl=Pin(10)`。 | I²C 端口号 | SDA | SCL | | --------- | ------------ | ------------- | | I2C 1 | pin 0 | pin 1 | -| I2C 0 | pin 10 | pin 9 | +| I2C 0 | pin 9 | pin 10 | | I2C 0 | pin 13 | pin 14 | ## machine.I2C API详解 @@ -146,13 +146,13 @@ writeto_mem ```python >>> from machine import I2C, Pin ->>> i2c = I2C(0, sda=Pin(10), scl=Pin(9),freq=100000)#构建I2C0,时钟频率100000(时钟屏幕根据具体传感器而定,一般使用100000或400000) +>>> i2c = I2C(0, sda=Pin(9), scl=Pin(10),freq=100000)#构建I2C0,时钟频率100000(时钟屏幕根据具体传感器而定,一般使用100000或400000) >>> i2c = I2C(1, sda=Pin(0), scl=Pin(1),freq=100000)##用pin1引脚当I2C1的scl功能成功 ```   使用ID直接构造 -  I2C的id只能取`0`或`1`,可以通过id来直接构造这两组接口。无法直接使用第1组I2C资源,默认I2C的SCL功能是由pin4引脚实现,会报`invalid scl pin(4)`错误。 +  I2C的id只能取`0`或`1`,可以通过id来直接构造这两组接口。无法直接使用第1组I2C资源,默认I2C的SCL功能是由pin4引脚实现,会报`invalid scl pin(4)`错误,因为`IO3`、`IO4`被编程串口所占用。   示例: @@ -160,7 +160,7 @@ writeto_mem >>> from machine import I2C, Pin >>> i2c0=I2C(0)#构建I2C0 >>> i2c0 -I2C(0, scl=9, sda=10, freq=400000) +I2C(0, scl=10, sda=9, freq=400000) >>> i2c1=I2C(1)#构建I2C1会报ValueError Traceback (most recent call last): File "", in -- Gitee From bccd8028fdbecf3f6662d6aa7905173c92384750 Mon Sep 17 00:00:00 2001 From: herculeshu <1743021786@qq.com> Date: Mon, 23 Aug 2021 16:57:34 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9GPIO9\GPIO10=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machine/GPIO/README.md | 18 ++++++++++-------- machine/PWM/README.md | 11 +++++------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/machine/GPIO/README.md b/machine/GPIO/README.md index 347a636..d5a453f 100644 --- a/machine/GPIO/README.md +++ b/machine/GPIO/README.md @@ -157,6 +157,16 @@ | SPI0 TXD | | PWM1 OUT | +  pin 9的功能如下: + +| **功能** | +| --------- | +| GPIO9 | +| I2C0 SDA | +| SPI0 CK | +| PWM1 OUT | + +   pin 10的功能如下: | **功能** | @@ -166,14 +176,6 @@ | SPI0 TXD | | PWM0 OUT | -  pin 9的功能如下: - -| **功能** | -| --------- | -| GPIO9 | -| I2C0 SDA | -| SPI0 CK | -| PWM1 OUT |   pin 11的功能如下: diff --git a/machine/PWM/README.md b/machine/PWM/README.md index 035c5fe..b0248f9 100644 --- a/machine/PWM/README.md +++ b/machine/PWM/README.md @@ -55,17 +55,16 @@   共有14个引脚有PWM功能: -  总共6组PWM。(注意,在Waffle Nano中 9、10号引脚作为与板载传感器沟通的主要线路,3,4号引脚为python REPL代码交互用引脚,已被占用,均无法进行二次调用) +  总共6组PWM。(注意,在Waffle Nano中3,4号引脚为python REPL代码交互用引脚,已被占用无法进行二次调用) | 引脚 | 功能 | | -------------------- | -------- | -| pin 4、pin 8、pin 10 | PWM1 OUT | -| pin 7、pin 9 | PWM0 OUT | -| pin 4、pin 8、pin 10 | PWM1 OUT | +| pin 7、pin 10 | PWM0 OUT | +| pin 8、pin 9 | PWM1 OUT | | pin 2、pin 5、pin 11 | PWM2 OUT | | pin 0、pin 6、pin 12 | PWM3 OUT | -| pin 1、pin 4 | PWM4 OUT | -| pin 3、pin 14 | PWM5 OUT | +| pin 1 | PWM4 OUT | +| pin 14 | PWM5 OUT | ## machine.PWM API详解 -- Gitee From 4e35fc02bee266487b4422b5cda52d2a9089255a Mon Sep 17 00:00:00 2001 From: herculeshu <1743021786@qq.com> Date: Mon, 23 Aug 2021 16:59:54 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9GPIO9\GPIO10=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machine/GPIO/README.md | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/machine/GPIO/README.md b/machine/GPIO/README.md index fd2423b..06db335 100644 --- a/machine/GPIO/README.md +++ b/machine/GPIO/README.md @@ -157,39 +157,24 @@ | SPI0 TXD | | PWM1 OUT | -  pin 10的功能如下: +  pin 9的功能如下: | **功能** | | --------- | -<<<<<<< HEAD | GPIO9 | | I2C0 SDA | | SPI0 CK | | PWM1 OUT | -======= -| GPIO10 | -| I2C0 SCL | -| SPI0 TXD | -| PWM0 OUT | ->>>>>>> master - -  pin 9的功能如下: +  pin 10的功能如下: | **功能** | | --------- | -<<<<<<< HEAD | GPIO10 | | I2C0 SCL | | SPI0 TXD | | PWM0 OUT | -======= -| GPIO9 | -| I2C0 SDA | -| SPI0 CK | -| PWM1 OUT | ->>>>>>> master   pin 11的功能如下: -- Gitee From 2c3a0f9d0e9ff52547564d533f4fed05d2f8c96d Mon Sep 17 00:00:00 2001 From: herculeshu <1743021786@qq.com> Date: Mon, 23 Aug 2021 17:46:18 +0800 Subject: [PATCH 4/5] +1 --- QRCode/README.md | 147 +++++++++++++++++++++++++++++++++++++++++++++++ README.md | 3 +- 2 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 QRCode/README.md diff --git a/QRCode/README.md b/QRCode/README.md new file mode 100644 index 0000000..79f8e14 --- /dev/null +++ b/QRCode/README.md @@ -0,0 +1,147 @@ +# 二维码生成库 + +## 简介 + +  使用此库可将普通字符串转化为二维码。 + +## qrcode API详解 + +  使用`import qrcode`导入二维码生成类 `qrcode`。 +  再使用 `TAB` 按键来查看 `qrcode` 中所包含的内容: + +```python +>>> import qrcode +>>>qrcode. +_name ECC_HIGH ECC_LOW ECC_MEDIUM +ECC_QUARTILE QrCode +``` + + +### 宏定义 + +  下面的宏定义用于配置qrcode,用于设置二维码的容错率。 + +| 宏定义 | 含义 | +| ------------- | --------------- | +| qrcode.ECC_LOW | 容错率 7% | +| qrcode.ECC_MEDIUM | 容错率 15% | +| qrcode.ECC_QUARTILE | 容错率 25% | +| qrcode.ECC_HIGH | 容错率 30% | + + +### 类 + +  class QrCode() + +### 构造QrCode + +  示例: + +```python +import qrcode +qr = qrcode.QrCode() ##构造一个二维码生成对象 +``` + +### 函数 + +#### qrcode.encode_text(str,ecc) + +  函数说明:生成一个二维码。 + +  参数说明: + +- `str`:待转化为二维码的字符串 +- `ecc`:转化容错率 + +  示例: + +```python +import qrcode +qr = qrcode.QrCode() ## 构造一个二维码生成对象 +qr.encode_text("https://blackwalnut.tech", qrcode.ECC_HIGH) ## 使用30%的容错率,将`https://blackwalnut.tech`字符串转化为二维码 +``` + + + +#### qrcode.get_size() + +  函数说明:获取生成的正方形二维码的以像素点为单位的边长。 + +  函数返回:返回生成的正方形二维码的以像素点为单位的边长。 + +  示例: + +```python + +import qrcode +qr = qrcode.QrCode() ## 构造一个二维码生成对象 +qr.encode_text("https://blackwalnut.tech", qrcode.ECC_HIGH) ## 使用30%的容错率,将`https://blackwalnut.tech`字符串转化为二维码 +lens=qr.get_size() ##获取生成的正方形二维码的以像素点为单位的边长。 + +``` + + +#### qrcode.get_module(col,row) + + +  函数说明:返回给定坐标处像素的颜色。 + +  参数说明: + +- `col`:坐标像素列 +- `row`:坐标像素行 + +  函数返回:若值为`False`,代表此坐标所代表的像素点为白色或者坐标超出给定边界,若值为`True`,代表此坐标所代表的像素点为黑色。 + + +  示例: + +```python +import qrcode +qr = qrcode.QrCode() ## 构造一个二维码生成对象 +qr.encode_text("https://blackwalnut.tech", qrcode.ECC_HIGH) ## 使用30%的容错率,将`https://blackwalnut.tech`字符串转化为二维码 +lens=qr.get_size() ##获取生成的正方形二维码的以像素点为单位的边长。 +color=qr.get_module(5,4) ##获取生成的二维码在5列,4行处的颜色。 +``` + + + +### 总示例代码 + +  该代码能在屏幕上显示出最终完成转换的二维码图案。 + +```python +from machine import SPI, Pin +import st7789 +spi = SPI(0, baudrate=40000000, polarity=1, phase=0, bits=8, endia=0, sck=Pin(6), mosi=Pin(8)) + +display = st7789.ST7789(spi, 240, 240, reset=Pin(11,func=Pin.GPIO, dir=Pin.OUT), dc=Pin(7,func=Pin.GPIO, dir=Pin.OUT)) +display.init() +display.fill(0xFFFFF) + +import qrcode + +qr = qrcode.QrCode() +qr.encode_text("https://blackwalnut.tech", qrcode.ECC_HIGH) + +border = 4 +len = 8 + +for row in range(0, qr.get_size()): + for col in range(0, qr.get_size()): + x1 = col*len+border + y1 = row*len+border + display.fill_rect(x1, y1, len, len, 0 if qr.get_module(col, row) else 0xFFFFF) + print("##" if qr.get_module(col, row) else " ", end = "") + print() +print() + +``` + + + + + + + + diff --git a/README.md b/README.md index 39b730b..478a209 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,8 @@ |[ST7789](st7789/README.md)| ST7789 驱动程序 | |[framebuf](framebuf/README.md)| 提供可用于创建位图、可发送到显示器的通用帧缓冲区操作库 | |[nfc](nfc/README.md)| NFC 调用接口 | -|[ulab](ulab/README.md)| ULAB 库 | +|[QRCode]](QRCode/README.md)| 二维码生成库 | + ## 外部链接 -- Gitee From 3ded7d6593f9df19bbe26ef54370801d9d51d0d7 Mon Sep 17 00:00:00 2001 From: herculeshu <1743021786@qq.com> Date: Mon, 23 Aug 2021 17:48:10 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20QRCode=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 478a209..b69d6a0 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ |[ST7789](st7789/README.md)| ST7789 驱动程序 | |[framebuf](framebuf/README.md)| 提供可用于创建位图、可发送到显示器的通用帧缓冲区操作库 | |[nfc](nfc/README.md)| NFC 调用接口 | -|[QRCode]](QRCode/README.md)| 二维码生成库 | +|[QRCode](QRCode/README.md)| 二维码生成库 | ## 外部链接 -- Gitee