Nadh2413 / Bai2_GPIO

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bai2_GPIO : chương trình đảo trạng thái đầu ra của Buzzer trên Kit mở rộng khi nút ấn trên kit được nhấn nút B5 trên Kit mở rộng STM32F401.

Bước 1: Tải thư viện SDK_1.0.3_NUCLEO-F401RE và lưu trữ ở thư mục dễ tìm


Bước 2: Tạo project bằng phần mềm STM32CubeIDE


Bước 3: Thêm thư viện SDK_1.0.3_NUCLEO-F401RE vào project vừa tạo theo chỉ dẫn sau:


+ Trỏ chuột vào project và ấn chuột phải.
+ Chọn Properties → C/C++ Genaral → Path and Symbols → Source
Location → Link Folder → chọn tích Link to folder in the system → chọn Browse để chọn đến file SDK_1.0.3_NUCLEO-F401RE và nhấn OK.

Bước 4: Sau khi đã thêm thư viện SDK_1.0.3_NUCLEO-F401RE, các bạn cần phải tạo đường dẫn đến thư mục.


+ Trỏ chuột vào project và ấn chuột phải.
+ Chọn Properties → C/C++ Build → Setting → Tool Setting → Include
paths trong MCU GCC Compiler → chọn Add → chọn Workspace… và chọn các đường dẫn sau:
1. SDK_1.0.3_NUCLEO-F401RE/shared/Drivers/CMSIS/Include
2. SDK_1.0.3_NUCLEO-F401RE/shared/Drivers/STM32F401RE_StdPe riph_Driver/inc
3. SDK_1.0.3_NUCLEO-F401RE/shared/Middle/button
4. SDK_1.0.3_NUCLEO-F401RE/shared/Middle/rtos
5. SDK_1.0.3_NUCLEO-F401RE/shared/Middle/serial
6. SDK_1.0.3_NUCLEO-F401RE/shared/Middle/buzzer
7. SDK_1.0.3_NUCLEO-F401RE/shared/Middle/led
8. SDK_1.0.3_NUCLEO-F401RE/shared/Middle/sensor
9. SDK_1.0.3_NUCLEO-F401RE/shared/Middle/ucglib
10. SDK_1.0.3_NUCLEO-F401RE/shared/Utilities
Trong Properties → C/C++ Build → Setting → Tool Setting → Libraries trong MCU GCC Linker → chọn Add… trong Libraries(-l) → viết Libraries và Add… trong Library search paths (-L) thêm đường dẫn sau: SDK_1.0.3_NUCLEO-F401RE\lib_stm

Bước 5: Thêm các thư viện "stm32f401re gpio.h", "stm32f401re_rcc.h" bằng câu lệnh #include.


Bước 6: Định nghĩa các macro với tên gọi dễ nhớ giúp bạn dễ dàng trong khi bạn viết chương trình



![Kq Bước 6](https://user-images.githubusercontent.com/117442476/224863377-373c01ba-6f22-4fb7-810e-0313f99106cc.png)

Bước 7: Cấu hình chân PA5 của led trên Board STM32 ở chế độ output.


● Khai báo biến thuộc kiểu dữ liệu struct GPIO.
● Cấp xung clock hoạt động cho Port A.
● Chọn chân sử dụng với chức năng điều khiển Led.
● Chọn chân điều khiển led ở chế độ Output.
● Tốc độ xử lý trên chân là 50MHz.
● Chọn chế độ là đẩy kéo Push Pull.
● Trạng thái ban đầu trên chân là kéo xuống GND Pull Down.
● Khởi tạo tất cả các giá trị bên trên bằng cách sử dụng hàm GPIO_Init với
đối số truyền vào là GPIOA và GPIO_InitStructure
![image](https://user-images.githubusercontent.com/117442476/224864406-44f37af0-167e-4a63-ae37-5ba6ace81362.png)




Bước 8: Cấu hình chân B5 (PB4) của nút nhấn trên Kit mở rộng STM32 ở chế độ Input.


● Khai báo biến thuộc kiểu dữ liệu struct GPIO.
● Cấp xung Clock hoạt động cho Port B.
● Chọn chân sử dụng làm chức năng nút ấn.
● Chọn chế độ trên chân GPIO là Input.
● Tốc độ xử lý là 50MHz.
● Trạng thái kéo trở lên nguồn +3.3V (Pull Up).
● Khởi tạo tất cả các giá trị bên trên bằng cách sử dụng hàm GPIO_Init với
đối số truyền vào là GPIOB và GPIO_InitStructure

Bước 9: Xây dựng hàm điều khiển Buzzer



![image](https://user-images.githubusercontent.com/117442476/224863661-ac79a2aa-7c52-4876-adf2-61e5a58a9af0.png)

Bước 10: Xây dựng hàm đọc giá trị nút ấn

![image](https://user-images.githubusercontent.com/117442476/224863806-fa14eb26-1663-468a-b30a-9de999a0f0a8.png)

Bước 11: Trong hàm While(1), thực hiện thuật toán đảo trạng thái Buzzer khi được ấn nút trên Kit mở rộng



![image](https://user-images.githubusercontent.com/117442476/224863868-19b249d6-0293-4f5e-85a2-ffb2055fd07a.png)

About


Languages

Language:Assembly 50.8%Language:C 27.9%Language:Makefile 21.3%