Gpio Là Gì

  -  

General-purpose Input/đầu ra (GPIO) siêu thông dụng, là một trong những tác dụng nước ngoài vi cơ bản của những vi điều khiển, bao hàm các chân đầu vào với chân cổng output, rất có thể được điều khiển vày người dùng. Nó tương tự như với các dòng vi điều khiển và tinh chỉnh 8 bit như AVR cùng PIC. Tuy nhiên. những cái vi điều khiển và tinh chỉnh 8bit, chỉ gồm 8 chân IO trên 1 port thì sống những vi điều khiển và tinh chỉnh 32bit, có cho 16 chân IO bên trên 1 port. Cụ thể so với chip STM32F103C8Tx có gồm 3 Port bao gồm sẽ là GPIOA, GPIOB, GPIOC. Trong số đó, GPIOA, GPIOB bên trên kit thì tất cả đủ 16 chân GPIO, GPIOC 3 chân với GPIOD gồm 2 chân. 

Cấu trúc 1 chân GPIO của Vi điều khiển STM32F103C8T6: 


*

Có 2 kăn năn tinh chỉnh và điều khiển không giống nhau (khung người đường nét đứt):

– Input

– Output đầu ra cùng các tinh chỉnh và điều khiển cổng đầu ra khác

Chức năng của GPIO bao gồm:


*

1/ GPIO Input:

Sơ lược qua cấu trúc phần cứng cùng kân hận tinh chỉnh input:


*

2/ Các thanh hao ghi dữ liệu:

Input Data Register (IDR): Nhận nấc bộc lộ tại chân IO, thông qua câu hỏi hiểu thanh khô ghi GPIOx_IDR thì chúng ta có thể gọi được tâm trạng nút “1” tốt mức “0” của chân kia trên Port khớp ứng.Bạn sẽ xem: Gpio là gì

Khi cấu hình những chân sinh hoạt Port khớp ứng tất cả chức năng Input thì các tkhô cứng ghi dữ liệu Output (Output đầu ra data register) đã auto bị khóa lại do chân này đã được knhị báo là Input. Lúc bấy giờ, bọn họ chỉ được phép gọi dữ liệu tự thanh hao ghi Input Data Register để biết trạng thái của chân trên port đó chứ không cần được phxay ghi.

Bạn đang xem: Gpio là gì


*

3/ TTL Schmitt Trigger:

Quá trình gọi sườn biểu hiện Input thường bị tác động bởi 2 hiện tượng:

– Nhiễu

– Tốc độ thay đổi biểu lộ chậm

Khi thông số kỹ thuật chân sinh hoạt Port tương ứng là Input thì khối TTL Schmitt Trigger sẽ được nối với chân trang bị lý. Cơ chế của mạch tích phù hợp TTL Schemitt Trigger này mục tiêu dùng làm lúc nó chào đón năng lượng điện áp Vin, nó giúp bọn họ rõ ràng được biểu hiện bởi ngưỡng VT đó nhằm ra quyết định ngõ ra Vout là cao hay rẻ. Với xây dựng TTL Schmitt Trigger góp họ phòng nhiễu nguồn vào tốt hơn ngơi nghỉ bên trong vi tinh chỉnh. Chi huyết về TTL Schmitt Trigger các bạn tham khảo thêm trên trên đây.


*

4/ Điện trlàm việc kéo:

lúc cấu hình chân ở Port tương ứng tất cả chức năng Input, thì trên chân kia bạn có thể chọn năng lượng điện trlàm việc để định nút điện áp trước tại chân chính là nút “1” tuyệt mức “0”, hoàn toàn có thể gọi là điện trsống pull up (kéo nguồn) hoặc năng lượng điện trsinh hoạt pull down (kéo đất). Nếu không thông số kỹ thuật cho nó kéo mối cung cấp hay kéo đất thì chân IO vẫn ngơi nghỉ năng lượng điện áp thả nổi nằm trong lòng nấc “1” với nấc “0” (Input floating).


Lựa chọn chân trên kit STM32F103C8T6:

Quan ngay cạnh bên trên kit STM32F103C8T6, hiện giờ không tồn tại nút ít nhận như thế nào sẵn trên board buộc phải mình đã áp dụng một nút dìm ở không tính cắm vào và chân gọi nút ít dấn là chân PA0, những bạn có thể chọn giống như mình hoặc đổi chân khác. Trong khi sinh sống Port C chân thứ 13, trên kit đã layout sẵn một đèn led, bọn họ đang sử dụng đèn led này để thực hành nhấn nút thì led đảo tinh thần.

Xem thêm: Kỹ Năng Street Smart Là Gì, Bài 3, Kỹ Năng Street Smart (Ss) Đây Là

Cấu hình trên CubeMX:

Cách 1:

Mở CubeMX Chọn chip STM32F103C8T6

Bước 2:

Bắt đầu project

Cách 3:

Cài đặt Serial wire để nạp code theo chuẩn chỉnh SWDIO-SWCLK

Bước 4:

Cliông xã loài chuột nên vào chân PC13 Chọn vào ô GPIO_Output

Bước 5:

Click loài chuột yêu cầu vào chân PA0 Chọn ô GPIO_Input

Cách 6:

Cấu hình những chân GPIO Chọn configuration

Cách 7:

GPIO output level: “LOW” (Trạng thái ban sơ của led cùng sẽ tiến hành kích khi xuất mức “0” tại chân IO)GPIO mode: “Output đầu ra push-pull”Maximum output speed: Đối với những dòng vi tinh chỉnh và điều khiển tất cả tốc độ xử lý nhanh hao từ vài ba chục MHz trlàm việc lên, thì bọn họ đề xuất knhị báo vận tốc dao động tại chân đó nhằm đáp ứng nhu cầu với tốc độ xử trí của vi tinh chỉnh và điều khiển. Bây Giờ, bọn họ đang sử dụng mối cung cấp giao động nội cùng với vận tốc là 8MHz phải ở đây sẽ chọn “LOW”

Bước 8:

GPIO Mode: Input modeGPIO Pull-up/Pull-down: Pull-up

Tại trên đây mình vẫn kéo trnghỉ ngơi nguồn, định nút ban đầu đến chân PA0 là mức “1”. Nút ít thừa nhận sẽ tiến hành nối cùng với GND để Khi thừa nhận nút ít thì chân PA0 sẽ bị kéo xuống đến mức “0”, Khi nhận ra PA0 tại mức “0” thì ta đang đảo tinh thần led PC13.

Bước 9:

Setting project và sinh code

Đặt tên project với phương pháp thực hiện nhằm lập trình

Clichồng vào Code Generator tiếp đến lựa chọn sao chép những thư viện quan trọng sau đó thì sinc code với msinh hoạt project bên keilC lên

Cách 11:

Clichồng vào Function quan tiền gần kề những hàm sẽ sử dụng trong bài này.

Xem thêm: Management Information Base ( Mib Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa

Bước 12:

Tại đây bọn họ đã sử dụng hàm:

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) để đọc tâm trạng của chân tại Port tương xứng. Hàm này sẽ trả về giá chỉ trị: 1 hoặc 0 tương xứng với tâm trạng của các chân sẽ cấu hìnhGPIO_TypeDef *GPIOx: Tmê mệt số này ta đang truyền vào Port A của đôi bàn chân nút ít dìm là GPIOAuint16_t GPIO_Pin: Tham mê số này ta đã truyền vào chân nút nhấn PA0 là GPIO_PIN_0

Bước 13:

Ở trong khoảng while(1) bọn họ đã chất vấn thường xuyên tâm trạng của đôi bàn chân PA0, nếu nó ở tại mức “0” thì vừa lòng ĐK if với thực hiện các lệnh trong các số ấy.

Bước 14:

Sử dụng while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)==0); để phòng nhiễu cho nút dìm, ngóng đến lúc chúng ta thả tay thoát khỏi nút thì cơ hội đấy mới đổi tâm lý của led PC13