General-purpose Input/Output (GPIO) hết sức thông dụng, là một trong những tác dụng ngoại vi cơ bản của những vi tinh chỉnh và điều khiển, bao hàm các chân nguồn vào với chân cổng đầu ra, hoàn toàn có thể được tinh chỉnh bởi người dùng. Nó giống như cùng với những dòng vi tinh chỉnh và điều khiển 8 bit nlỗi AVR và PIC. Tuy nhiên. phần lớn loại vi tinh chỉnh và điều khiển 8bit, chỉ gồm 8 chân IO bên trên 1 port thì ở những vi tinh chỉnh và điều khiển 32bit, gồm mang đến 16 chân IO trên 1 port. Cụ thể đối với chip STM32F103C8Tx bao gồm gồm 3 Port chính đó 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 cùng GPIOD có 2 chân. 

Cấu trúc một bàn chân GPIO của Vi tinh chỉnh STM32F103C8T6: 


*

Có 2 khối điều khiển khác nhau (cơ thể đường nét đứt):

– Input

– Output và những tinh chỉnh cổng đầu ra khác

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


*

1/ GPIO Input:

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


*

2/ Các tkhô cứng ghi dữ liệu:

Input Data Register (IDR): Nhận mức biểu thị trên chân IO, trải qua câu hỏi hiểu thanh hao ghi GPIOx_IDR thì bạn cũng có thể gọi được tâm trạng mức “1” hay nút “0” của bàn chân đó tại Port tương xứng.Quý Khách sẽ xem: Gpio là gì

Khi thông số kỹ thuật những chân nghỉ ngơi Port tương xứng gồm công dụng Input thì những thanh ghi tài liệu Output (Output đầu ra data register) đã tự động bị khóa lại vì chưng chân này đã được knhị báo là Input. Lúc này, chúng ta chỉ được phnghiền đọc tài liệu từ thanh khô ghi Input Data Register để biết tâm trạng của chân tại port kia chứ không cần được phnghiền ghi.

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


*

3/ TTL Schmitt Trigger:

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

– Nhiễu

– Tốc độ đổi khác tín hiệu 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ẽ tiến hành nối với chân đồ vật lý. Cơ chế của mạch tích hợp TTL Schemitt Trigger này mục đích dùng để làm khi nó mừng đón năng lượng điện áp Vin, nó góp họ tách biệt được biểu hiện bởi ngưỡng VT kia để quyết định ngõ ra Vout là cao tuyệt rẻ. Với kiến tạo TTL Schmitt Trigger góp chúng ta phòng nhiễu nguồn vào tốt hơn làm việc bên phía trong vi điều khiển và tinh chỉnh. Chi tiết về TTL Schmitt Trigger các bạn xem thêm tại phía trên.


*

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

khi cấu hình chân nghỉ ngơi Port tương ứng bao gồm chức năng Input, thì tại chân kia chúng ta cũng có thể chọn điện trngơi nghỉ để định nút điện áp trước tại chân đó là mức “1” giỏi nấc “0”, có thể gọi là năng lượng điện trsống pull up (kéo nguồn) hoặc năng lượng điện trở pull down (kéo đất). Nếu ko thông số kỹ thuật mang đến nó kéo nguồn tốt kéo đất thì chân IO đang nghỉ ngơi năng lượng điện áp thả nổi nằm giữa nút “1” và mức “0” (Input floating).

Xem thêm: Iqc Là Gì ? Mô Tả Công Việc Chi Tiết Của Iqc Cần Nắm Rõ Cách Tuyển Dụng Chuyên Viên Oqc Bạn Đã Biết Chưa


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

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

Cấu hình trên CubeMX:

Bước 1:

Mở CubeMX Chọn chip STM32F103C8T6

Bước 2:

Bắt đầu project

Cách 3:

Cài đặt Serial wire nhằm hấp thụ code theo chuẩn chỉnh SWDIO-SWCLK

Bước 4:

Clichồng con chuột yêu cầu vào chân PC13 Chọn vào ô GPIO_Output

Bước 5:

Cliông xã loài chuột phải 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 thuở đầu 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 cùng với các loại vi điều khiển có vận tốc xử lý nhanh khô từ vài ba chục MHz trở lên, thì bọn họ cần knhị báo vận tốc xê dịch tại chân kia để đáp ứng với vận tốc giải pháp xử lý của vi tinh chỉnh và điều khiển. Lúc Này, bọn họ đang sử dụng nguồn xê dịch nội cùng với vận tốc là 8MHz yêu cầu ở đây đang chọn “LOW”

Bước 8:

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

Tại phía trên bản thân đang kéo trlàm việc nguồn, định nấc ban sơ mang lại chân PA0 là nút “1”. Nút ít nhấn sẽ tiến hành nối với GND nhằm Khi thừa nhận nút thì chân PA0 sẽ ảnh hưởng kéo xuống mức “0”, Khi nhận biết PA0 tại mức “0” thì ta vẫn hòn đảo trạng thái led PC13.

Cách 9:

Setting project và sinch code

Đặt thương hiệu project với mức sử dụng áp dụng nhằm lập trình

Cliông chồng vào Code Generator tiếp nối chọn xào nấu các thỏng viện cần thiết tiếp đến thì sinh code với msinh hoạt project mặt keilC lên

Bước 11:

Bước 12:

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

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

Bước 13:

Ở trong tầm while(1) chúng ta đang chất vấn liên tục tâm trạng của cẳng chân PA0, nếu như nó ở tại mức “0” thì thỏa mãn nhu cầu ĐK if với thực hiện những lệnh trong những số đó.

Bước 14:

Sử dụng while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)==0); để phòng nhiễu đến nút ít nhận, chờ đến lúc họ thả tay thoát ra khỏi nút ít thì lúc đấy new đổi tâm lý của led PC13

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *