class Pin -- điều khiển chân (pin) I/O¶
Đối tượng chân (pin) được dùng để điều khiển các chân (pin) I/O (còn gọi là GPIO - đầu vào/ra mục đích chung). Các đối tượng chân thường được liên kết với một chân vật lý có thể cấp điện áp đầu ra và đọc điện áp đầu vào. Lớp chân có các phương thức để thiết lập chế độ của chân (IN, OUT, v.v.) và các phương thức để lấy và đặt mức logic kỹ thuật số. Để điều khiển tương tự một chân, xem lớp ADC.
Một đối tượng chân được tạo bằng cách sử dụng một định danh xác định rõ ràng một chân I/O nhất định. Các dạng định danh được phép và chân vật lý mà định danh ánh xạ tới phụ thuộc vào cổng. Các khả năng cho định danh là một số nguyên, một chuỗi hoặc một tuple với số cổng và số chân.
Mô hình sử dụng:
from machine import Pin
# create an output pin on header pin P0
p0 = Pin("P0", Pin.OUT)
# set the value low then high
p0.value(0)
p0.value(1)
# create an input pin on header pin P2, with a pull-up resistor
p2 = Pin("P2", Pin.IN, Pin.PULL_UP)
# read and print the pin value
print(p2.value())
# reconfigure P0 in input mode with a pull-down resistor
p0.init(p0.IN, p0.PULL_DOWN)
# install an IRQ callback
p0.irq(lambda p: print(p))
Hàm khởi tạo¶
- class machine.Pin(id: int | str, mode: int = -1, pull: int = -1, *, value: Any = None, drive: int = 0, alt: int = -1)¶
Truy cập ngoại vi chân (chân GPIO) được liên kết với
idđã cho. Nếu có thêm đối số trong hàm khởi tạo thì chúng được dùng để khởi tạo chân. Bất kỳ cài đặt nào không được chỉ định sẽ giữ nguyên trạng thái trước đó.Các đối số là:
idlà bắt buộc và có thể là đối tượng bất kỳ. Các kiểu giá trị có thể bao gồm: int (định danh chân nội bộ), str (tên chân), và tuple (cặp [cổng, chân]).modechỉ định chế độ chân, có thể là một trong số:Pin.IN- Chân được cấu hình cho đầu vào. Nếu xem như đầu ra, chân ở trạng thái trở kháng cao.Pin.OUT- Chân được cấu hình cho đầu ra (thông thường).Pin.OPEN_DRAIN- Chân được cấu hình cho đầu ra cực thoát mở. Đầu ra cực thoát mở hoạt động như sau: nếu giá trị đầu ra được đặt thành 0, chân hoạt động ở mức thấp; nếu giá trị đầu ra là 1, chân ở trạng thái trở kháng cao. Không phải tất cả các cổng đều triển khai chế độ này, hoặc một số chỉ triển khai trên một số chân nhất định.Pin.ALT- Chân được cấu hình để thực hiện chức năng thay thế, phụ thuộc vào cổng. Với chân được cấu hình theo cách này, các phương thức chân khác (ngoại trừPin.init()) không áp dụng được (gọi chúng sẽ dẫn đến kết quả không xác định hoặc phụ thuộc phần cứng). Không phải tất cả các cổng đều triển khai chế độ này.Pin.ALT_OPEN_DRAIN- Giống nhưPin.ALT, nhưng chân được cấu hình là cực thoát mở. Không phải tất cả các cổng đều triển khai chế độ này.Pin.ANALOG- Chân được cấu hình cho đầu vào tương tự, xem lớpADC.
pullchỉ định xem chân có điện trở kéo (yếu) hay không, và có thể là một trong số:None- Không có điện trở kéo lên hoặc kéo xuống.Pin.PULL_UP- Điện trở kéo lên được bật.Pin.PULL_DOWN- Điện trở kéo xuống được bật.
valuechỉ hợp lệ với chế độ Pin.OUT và Pin.OPEN_DRAIN và chỉ định giá trị ban đầu của chân đầu ra nếu được cung cấp, ngược lại trạng thái của ngoại vi chân không thay đổi.drivechỉ định công suất đầu ra của chân và có thể là một trong số:Pin.DRIVE_0,Pin.DRIVE_1, v.v., tăng dần theo sức mạnh điều khiển. Khả năng điều khiển dòng điện thực tế phụ thuộc vào cổng. Không phải tất cả các cổng đều triển khai đối số này.altchỉ định chức năng thay thế cho chân và các giá trị nó có thể nhận phụ thuộc vào cổng. Đối số này chỉ hợp lệ với chế độPin.ALTvàPin.ALT_OPEN_DRAIN. Nó có thể được dùng khi một chân hỗ trợ nhiều hơn một chức năng thay thế. Nếu chỉ hỗ trợ một chức năng thay thế thì đối số này không bắt buộc. Không phải tất cả các cổng đều triển khai đối số này.
Như đã chỉ định ở trên, lớp Pin cho phép đặt chức năng thay thế cho một chân cụ thể, nhưng nó không chỉ định thêm bất kỳ thao tác nào trên chân đó. Các chân được cấu hình ở chế độ chức năng thay thế thường không được dùng như GPIO mà thay vào đó được điều khiển bởi các ngoại vi phần cứng khác. Thao tác duy nhất được hỗ trợ trên chân như vậy là tái khởi tạo, bằng cách gọi hàm khởi tạo hoặc phương thức
Pin.init(). Nếu một chân được cấu hình ở chế độ chức năng thay thế được tái khởi tạo vớiPin.IN,Pin.OUT, hoặcPin.OPEN_DRAIN, chức năng thay thế sẽ bị xóa khỏi chân.Phương thức¶
- init(mode: int = -1, pull: int = -1, *, value: Any = None, drive: int = 0, alt: int = -1) None¶
Tái khởi tạo chân bằng các tham số đã cho. Chỉ những đối số được chỉ định mới được đặt. Phần còn lại của trạng thái ngoại vi chân sẽ không thay đổi. Xem tài liệu hàm khởi tạo để biết chi tiết về các đối số.
Trả về
None.
- value(x: Any = None, /) int | None¶
Phương thức này cho phép đặt và lấy giá trị của chân, tùy thuộc vào việc đối số
xcó được cung cấp hay không.Nếu đối số bị bỏ qua thì phương thức này lấy mức logic kỹ thuật số của chân, trả về 0 hoặc 1 tương ứng với tín hiệu điện áp thấp và cao. Hành vi của phương thức này phụ thuộc vào chế độ của chân:
Pin.IN- Phương thức trả về giá trị đầu vào thực tế hiện có trên chân.Pin.OUT- Hành vi và giá trị trả về của phương thức là không xác định.Pin.OPEN_DRAIN- Nếu chân ở trạng thái '0' thì hành vi và giá trị trả về của phương thức là không xác định. Ngược lại, nếu chân ở trạng thái '1', phương thức trả về giá trị đầu vào thực tế hiện có trên chân.
Nếu đối số được cung cấp thì phương thức này đặt mức logic kỹ thuật số của chân. Đối số
xcó thể là bất kỳ thứ gì chuyển đổi thành boolean. Nếu nó chuyển đổi thànhTrue, chân được đặt về trạng thái '1', ngược lại nó được đặt về trạng thái '0'. Hành vi của phương thức này phụ thuộc vào chế độ của chân:Pin.IN- Giá trị được lưu vào bộ đệm đầu ra của chân. Trạng thái chân không thay đổi, nó vẫn ở trạng thái trở kháng cao. Giá trị được lưu sẽ trở nên tích cực trên chân ngay khi nó được chuyển sang chế độPin.OUThoặcPin.OPEN_DRAIN.Pin.OUT- Bộ đệm đầu ra được đặt thành giá trị đã cho ngay lập tức.Pin.OPEN_DRAIN- Nếu giá trị là '0', chân được đặt về trạng thái điện áp thấp. Ngược lại chân được đặt về trạng thái trở kháng cao.
Khi đặt giá trị, phương thức này trả về
None.
- __call__(x: Any = None, /) int | None¶
Các đối tượng chân có thể gọi được. Phương thức gọi cung cấp một phím tắt (nhanh) để đặt và lấy giá trị của chân. Nó tương đương với Pin.value([x]). Xem
Pin.value()để biết thêm chi tiết.
- irq(handler: Callable[[Pin], None] | None = None, trigger: int = Pin.IRQ_FALLING | Pin.IRQ_RISING, *, priority: int = 1, wake: int | None = None, hard: bool = False) None¶
Cấu hình một hàm gọi lại ngắt để được gọi khi nguồn kích hoạt của chân hoạt động. Nếu chế độ chân là
Pin.INthì nguồn kích hoạt là giá trị bên ngoài trên chân. Nếu chế độ chân làPin.OUTthì nguồn kích hoạt là bộ đệm đầu ra của chân. Ngược lại, nếu chế độ chân làPin.OPEN_DRAINthì nguồn kích hoạt là bộ đệm đầu ra cho trạng thái '0' và giá trị chân bên ngoài cho trạng thái '1'.Các đối số là:
handlerlà hàm tùy chọn được gọi khi ngắt kích hoạt. Hàm xử lý phải nhận chính xác một đối số là đối tượngPin.triggercấu hình sự kiện có thể tạo ra ngắt. Các giá trị có thể là:Pin.IRQ_FALLINGngắt trên cạnh xuống.Pin.IRQ_RISINGngắt trên cạnh lên.
Các giá trị này có thể được OR với nhau để kích hoạt trên nhiều sự kiện.
priorityđặt mức độ ưu tiên của ngắt. Các giá trị nó có thể nhận phụ thuộc vào cổng, nhưng giá trị cao hơn luôn đại diện cho ưu tiên cao hơn.wakechọn chế độ nguồn điện mà ngắt này có thể đánh thức hệ thống. Không được hỗ trợ trên bất kỳ cổng OpenMV nào; để ở giá trị mặc định.hardnếu true thì sử dụng ngắt phần cứng. Điều này giảm độ trễ giữa sự thay đổi chân và việc hàm xử lý được gọi. Các hàm xử lý ngắt cứng không được phép cấp phát bộ nhớ; xem Viết trình xử lý ngắt. Không phải tất cả các cổng đều hỗ trợ đối số này.
Phương thức này trả về một đối tượng hàm gọi lại.
Các phương thức sau là phần mở rộng cho API Pin lõi. Chúng được nhóm theo tính khả dụng của cổng.
Các phương thức có sẵn trên tất cả các cổng OpenMV¶
Chỉ mimxrt + alif¶
Chỉ STM32¶
Hằng số¶
Các hằng số bên dưới được dùng để cấu hình đối tượng
Pinthông qua hàm khởi tạo,init()vàirq(). Chúng được nhóm theo tính khả dụng của cổng.Hằng số có sẵn trên tất cả các cổng OpenMV¶
Chỉ STM32¶
- ALT: int¶
Chế độ chân: chức năng thay thế (đẩy-kéo). Dùng với
alt=để chọn chức năng ngoại vi nào chân được định tuyến đến. Bí danh củaAF_PP.
- ANALOG: int¶
Chế độ chân: đầu vào tương tự -- bộ đệm đầu vào/ra kỹ thuật số bị ngắt kết nối để chân có thể được điều khiển bởi kênh
ADC.
- AF_OD: int¶
Chế độ cực thoát mở chức năng thay thế (cùng giá trị với
ALT_OPEN_DRAIN).
- OUT_OD: int¶
Chế độ đầu ra cực thoát mở (cùng giá trị với
OPEN_DRAIN).
Chỉ mimxrt¶
- PULL_HOLD: int¶
Bật chức năng giữ bus / bus-keeper của chân -- chân chốt mức logic hiện tại thay vì để nổi.