Gpio

  -  

General-purpose Input/Output đầu ra (GPIO) cực kỳ phổ cập, là một trong những tác dụng nước ngoài vi cơ bản của các vi điều khiển, bao hàm những chân nguồn vào với chân đầu ra, có thể được tinh chỉnh và điều khiển bởi vì người tiêu dùng. Nó giống như với các chiếc vi tinh chỉnh và điều khiển 8 bit như AVR với PIC. Tuy nhiên. đều cái vi điều khiển 8bit, chỉ có 8 chân IO bên trên 1 port thì sinh sống các vi tinh chỉnh và điều khiển 32bit, tất cả mang lại 16 chân IO trên 1 port. Cụ thể đối với chip STM32F103C8Tx tất cả tất cả 3 Port thiết yếu đó là GPIOA, GPIOB, GPIOC. Trong đó, GPIOA, GPIOB trên kit thì gồm đầy đủ 16 chân GPIO, GPIOC 3 chân và GPIOD tất cả 2 chân. 

Cấu trúc một bàn chân GPIO của Vi tinh chỉnh và điều khiển STM32F103C8T6: 


*

Có 2 kăn năn điều khiển khác nhau (khung người nét đứt):

– Input

– đầu ra và các tinh chỉnh đầu ra khác

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


*

1/ GPIO Input:

Sơ lược qua cấu tạo phần cứng và khối điều khiển input:


*

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

Input Data Register (IDR): Nhận nút biểu đạt tại chân IO, thông qua vấn đề gọi thanh khô ghi GPIOx_IDR thì chúng ta có thể gọi được tâm lý nút “1” tuyệt nấc “0” của chân đó trên Port tương ứng.quý khách hàng sẽ xem: Gpio là gì

lúc cấu hình những chân sinh sống Port tương ứng gồm công dụng Input thì các thanh hao ghi dữ liệu đầu ra (Output data register) sẽ auto bị khóa lại bởi vì chân đó đã được knhị báo là Input. Trong thời điểm này, chúng ta chỉ được phxay hiểu tài liệu từ tkhô nóng ghi Input Data Register để biết tinh thần của bàn chân trên port kia chứ không hề được phép ghi.

Bạn đang xem: Gpio


*

3/ TTL Schmitt Trigger:

Quá trình đọc sườn dấu hiệu Input thường bị ảnh hưởng bởi vì 2 hiện nay tượng:

– Nhiễu

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

khi cấu hình chân nghỉ ngơi Port khớp ứng là Input thì khối TTL Schmitt Trigger sẽ được nối cùng với chân đồ lý. Cơ chế của mạch tích thích hợp TTL Schemitt Trigger này mục đích dùng để Lúc nó đón nhận năng lượng điện áp Vin, nó giúp chúng ta sáng tỏ được tín hiệu bởi ngưỡng VT kia nhằm đưa ra quyết định ngõ ra Vout là cao tuyệt thấp. Với kiến thiết TTL Schmitt Trigger giúp họ phòng nhiễu đầu vào tốt hơn sinh hoạt bên trong vi điều khiển và tinh chỉnh. Chi máu về TTL Schmitt Trigger chúng ta tham khảo thêm tại đây.


*

4/ Điện trở kéo:

Khi thông số kỹ thuật chân ngơi nghỉ Port khớp ứng tất cả công dụng Input, thì trên chân kia chúng ta có thể lựa chọn năng lượng điện trlàm việc để định nút năng lượng điện áp trước tại chân sẽ là nấc “1” tuyệt nấc “0”, hoàn toàn có thể điện thoại tư vấn là năng lượng điện trsinh sống pull up (kéo nguồn) hoặc năng lượng điện trnghỉ ngơi pull down (kéo đất). Nếu ko cấu hình mang đến nó kéo mối cung cấp hay kéo đất thì chân IO vẫn sinh hoạt điện áp thả nổi nằm giữa nấc “1” cùng nút “0” (Input floating).


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

Quan giáp bên trên kit STM32F103C8T6, hiện tại không tồn tại nút thừa nhận nào sẵn bên trên board đề xuất mình đã áp dụng một nút dìm ở kế bên gặm vào và chân gọi nút dìm là chân PA0, các chúng ta có thể chọn giống như bản thân hoặc thay đổi chân không giống. Ngoài ra sinh sống Port C chân vật dụng 13, bên trên kit sẽ layout sẵn một đèn led, bọn họ đang thực hiện đèn led này nhằm thực hành thực tế nhấn nút ít thì led hòn đảo trạng thái.

Xem thêm: Hướng Dẫn Chơi Neko Atsume, Thông Tin Mới Về : Hướng Dẫn Neko Atsume

Cấu hình trên CubeMX:

Cách 1:

Msinh hoạt CubeMX Chọn chip STM32F103C8T6

Cách 2:

Bắt đầu project

Bước 3:

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

Bước 4:

Cliông chồng con chuột bắt buộc vào chân PC13 Chọn vào ô GPIO_Output

Cách 5:

Clichồng chuột đề xuất vào chân PA0 Chọn ô GPIO_Input

Bước 6:

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

Cách 7:

GPIO output level: “LOW” (Trạng thái thuở đầu của led cùng sẽ được kích khi xuất mức “0” trên chân IO)GPIO mode: “Output push-pull”Maximum output speed: Đối với các cái vi tinh chỉnh và điều khiển tất cả vận tốc cách xử trí nhanh trường đoản cú vài ba chục MHz trsinh hoạt lên, thì chúng ta nên knhì báo tốc độ xê dịch trên chân kia để thỏa mãn nhu cầu với vận tốc cách xử trí của vi điều khiển. Bây Giờ, chúng ta đã sử dụng nguồn dao động nội cùng với tốc độ là 8MHz buộc phải ở chỗ này đã lựa chọn “LOW”

Cách 8:

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

Ở đây bản thân đang kéo trngơi nghỉ nguồn, định nút lúc đầu cho chân PA0 là nấc “1”. Nút nhấn sẽ tiến hành nối với GND để khi thừa nhận nút thì chân PA0 sẽ ảnh hưởng kéo xuống đến mức “0”, Khi nhận ra PA0 ở tầm mức “0” thì ta đã hòn đảo tâm trạng led PC13.

Bước 9:

Setting project với sinc code

Đặt tên project với nguyên tắc thực hiện để lập trình

Clichồng vào Code Generator kế tiếp lựa chọn xào nấu các thỏng viện quan trọng tiếp đến thì sinch code với mở project mặt keilC lên

Cách 11:

Cliông chồng vào Function quan liêu ngay cạnh các hàm vẫn sử dụng trong bài bác này.

Xem thêm: Định Nghĩa Archipelago Là Gì ? Giá Trị Kinh Tế Từ Các Quần Đảo Ở Việt Nam

Bước 12:

Tại trên đây chúng ta đang cần sử dụng hàm:

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) nhằm đọc tâm trạng của bàn chân trên Port tương ứng. Hàm này đang trả về giá bán trị: 1 hoặc 0 khớp ứng cùng với tinh thần của các chân vẫn cấu hìnhGPIO_TypeDef *GPIOx: Tđắm đuối số này ta đã truyền vào Port A của chân nút ít dìm là GPIOAuint16_t GPIO_Pin: Tđam mê số này ta đã truyền vào chân nút nhấn PA0 là GPIO_PIN_0

Cách 13:

Ở trong vòng while(1) họ vẫn chất vấn liên tục tâm trạng của bàn chân PA0, nếu như nó ở mức “0” thì thỏa mãn điều kiện if và triển khai các lệnh trong số đó.

Cách 14:

Sử dụng while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)==0); nhằm phòng nhiễu mang đến nút dấn, hóng cho đến lúc họ thả tay ra khỏi nút ít thì cơ hội đấy mới đổi trạng thái của led PC13