General-purpose Input/Output (GPIO) vô cùng thịnh hành, là một chức năng ngoại vi cơ bạn dạng của các vi tinh chỉnh, bao hàm các chân nguồn vào cùng chân đầu ra, có thể được điều khiển bởi người dùng. Nó giống như với các dòng vi điều khiển và tinh chỉnh 8 bit như AVR và PIC. Tuy nhiên. các mẫu vi tinh chỉnh và điều khiển 8bit, chỉ có 8 chân IO bên trên 1 port thì làm việc các vi điều khiển 32bit, gồm đến 16 chân IO trên 1 port. Cụ thể đối với chip STM32F103C8Tx bao gồm bao gồm 3 Port bao gồm sẽ là GPIOA, GPIOB, GPIOC. Trong số đó, GPIOA, GPIOB trên kit thì có đầy đủ 16 chân GPIO, GPIOC 3 chân và GPIOD gồm 2 chân. 

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

*

Có 2 khối hận tinh chỉnh và điều khiển khác nhau (khung hình nét đứt):

– Input

– đầu ra và các điều khiển và tinh chỉnh đầu ra output 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 với kăn năn điều khiển input:

*

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

Input Data Register (IDR): Nhận mức biểu thị tại chân IO, thông qua vấn đề phát âm thanh hao ghi GPIOx_IDR thì chúng ta có thể gọi được tâm lý nút “1” hay mức “0” của chân đó tại Port tương ứng.

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

Khi thông số kỹ thuật những chân làm việc Port tương ứng tất cả chức năng Input thì những tkhô giòn ghi tài liệu đầu ra (đầu ra data register) đã auto bị khóa lại do chân đó đã được knhì báo là Input. Lúc này, bọn họ chỉ được phnghiền phát âm dữ liệu từ bỏ tkhô cứng ghi Input Data Register để biết tâm lý của đôi bàn chân trên port kia chứ không hề được phxay ghi.

*

3/ TTL Schmitt Trigger:

Quá trình đọc sườn biểu thị Input thường hay bị ảnh hưởng do 2 hiện tượng:

– Nhiễu

– Tốc độ thay đổi tín hiệu chậm

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

*

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

Khi thông số kỹ thuật chân nghỉ ngơi Port tương xứng gồm tính năng Input, thì trên chân đó bạn có thể lựa chọn năng lượng điện trở để định nấc điện áp trước trên chân chính là mức “1” tuyệt nút “0”, có thể điện thoại tư vấn là điện trngơi nghỉ pull up (kéo nguồn) hoặc năng lượng điện trngơi nghỉ pull down (kéo đất). Nếu ko thông số kỹ thuật mang đến nó kéo mối cung cấp tốt kéo đất thì chân IO đang sinh hoạt điện áp thả nổi nằm trong lòng nút “1” cùng nút “0” (Input floating).


*

*

Trong giải đáp này, họ đã sử dụng CubeMX nhằm sinh code cùng xây dựng bên trên môi trường xung quanh KeilC-V5. Kmất mát code, họ vẫn thao tác dựa trên lớp tlỗi viện HAL-Hardware Abstraction Layer. Thỏng viện này được xuất bản dựa trên những tlỗi viện tiêu chuẩn chỉnh (Std) của STM32, nhằm tiếp cận được lập cập cái vi tinh chỉnh và điều khiển này thì họ sẽ không đi vượt sâu vào tkhô nóng ghi GPIOx_IDR(Input data register). Mà sử dụng ứng dụng CubeMX để sinch code và thực hiện những hàm GPIO có sẵn trong thỏng viện HAL.

Xem thêm: Động Từ Phức Là Gì, Từ Phức Là Gì? Ví Dụ Và Phân Biệt Phân Biệt Với Từ Ghép

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

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

Cấu hình trên CubeMX:

Bước 1:

Mngơi nghỉ CubeMX Chọn chip STM32F103C8T6

Bước 2:

Bắt đầu project

Bước 3:

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

Cách 4:

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

Cách 5:

Click con chuột buộc phải vào chân PA0 Chọn ô GPIO_Input

Cách 6:

Cấu hình các chân GPIO Chọn configuration

Cách 7:

GPIO output level: “LOW” (Trạng thái ban sơ của led với sẽ được kích lúc xuất mức “0” trên chân IO)GPIO mode: “đầu ra push-pull”Maximum output speed: Đối với các mẫu vi điều khiển bao gồm vận tốc cách xử trí nhanh khô từ bỏ vài ba chục MHz trsống lên, thì chúng ta phải knhì báo tốc độ xấp xỉ tại chân đó để đáp ứng nhu cầu với tốc độ giải pháp xử lý của vi điều khiển và tinh chỉnh. Lúc Này, chúng ta sẽ thực hiện mối cung cấp xấp xỉ nội cùng với tốc độ là 8MHz đề nghị tại chỗ này đang chọn “LOW”

Bước 8:

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

Tại đây mình đã kéo trsinh sống 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 cùng với GND để Khi dấn nút ít thì chân PA0 có khả năng sẽ bị kéo xuống đến mức “0”, khi nhận thấy PA0 ở tại mức “0” thì ta sẽ hòn đảo tâm trạng led PC13.

Cách 9:

Setting project cùng sinh code

Đặt thương hiệu project và mức sử dụng sử dụng để lập trình

Clichồng vào Code Generator tiếp đến chọn coppy những tlỗi viện cần thiết sau đó thì sinch code và msinh hoạt project bên keilC lên

Bước 11:

Click vào Function quan giáp những hàm sẽ thực hiện trong bài này.

Xem thêm: Boo Là Gì - Boo Là Viết Tắt Của Từ Gì

Bước 12:

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

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

Bước 13:

Tại trong khoảng while(1) chúng ta đang kiểm soát tiếp tục tâm lý của bàn chân PA0, nếu như nó ở mức “0” thì vừa lòng ĐK if và tiến hành những lệnh trong những số đó.

Cách 14:

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


Chuyên mục: KHÁI NIỆM LÀ GÌ
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 *