Professional Documents
Culture Documents
(STM32 Cơ bản) Buổi 2 Phân tích GPIO GPIO PushPull, GPIO Opendrain GPIO INPUT - Chống nhiễu nút nhấn
(STM32 Cơ bản) Buổi 2 Phân tích GPIO GPIO PushPull, GPIO Opendrain GPIO INPUT - Chống nhiễu nút nhấn
PushPull
Đối với chế độ hoạt động này thì cả Mosfet P-MOS và N-MOS đều hoạt động. Khi P-MOS dẫn N-MOS tắt thì chân I/O
sẽ xuất mức 1, Khi P-MOS tắt N-MOS dẫn thì chân I/O sẽ xuất mức 0,
Opendrain
Đối với chế độ hoạt động này thì chỉ có N-MOS hoạt động. N-MOS dân
Ngọc Tuấn
CÁCH MẮC LED THEO KIỂU
SINK DÒNG, SOURCE DÒNG
Source dòng (Source current): khi tải hoạt động dòng sẽ đi từ chân
vi điều khiển đi qua tải và xuống GND.
Sink dòng (Sink current): khi tải hoạt động dòng sẽ đi từ nguồn qua
tải về chân vi điều khiển và xuống đất
Câu hỏi : 2 mạch trên mạch nào là sink, mạch nào là source ?
Ngọc Tuấn
CẤU HÌNH TRONG CUBE
➢ GPIO output level: Trạng thái IO
mặc định
• LOW: mặc định ở mức thấp:
• HIGH: mặc định ở mức cao.
➢ GPIO mode:
• Output Push Pull: ngõ ra chế độ đẩy
kéo.
• Output Open Drain: ngõ ra chế độ
cực thu hở.
➢ Maximum output speed: Tốc độ
ngõ ra tối đa.
Ngọc Tuấn
HÀM CẦN NHỚ
Ngọc Tuấn
INPUT
Ngọc Tuấn
ĐIỆN TRỞ PULL-UP, PULL-DOWN
Ngọc Tuấn
BÀI TẬP VỚI NÚT NHẤN
Ngọc Tuấn
HIỆN TƯỢNG RUNG CỦA NÚT NHẤN
• Do phím nhấn bên ngoài là phím cơ khí nên khi nhấn hoặc nhả phím sẽ xảy ra hiện tượng
rung phím trong khoảng thời gian là 20ms.
• Hiện tượng này dẫn đến là chúng ta nhấn 1 lần nhưng vi xử lí đọc được nhiều lần.
Ngọc Tuấn
CHỐNG RUNG NÚT NHẤN
Cách 1: dùng tụ mắc song song nút nhấn
Thuật toán: khi bắt được sự kiện nhấn nút, chúng ta sẽ bỏ qua khoảng thời gian 20ms
rung phím, sau đó kiểm tra lại 1 lần nữa để chắc chắn phím vẫn đang được bấm sau đó xử
lí code như bình thường.
Ngọc Tuấn
CẤU HÌNH TRONG CUBE
➢ GPIO pull-up/Pull-down:
• No pull-up and no pull-down: không điện trở kéo
lên và kéo xuống
• pull-up : sự dụng điện trở kéo lên.
• pull-down : sự dụng điện trở kéo xuống
Ngọc Tuấn
HÀM QUAN TRỌNG
Hàm đọc trạng thái của 1 chân.
HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin).
➢ Tham số:
▪ GPIOx : GPIOA, GPIOB, GPIOC, GPIOD
▪ GPIO_Pin: GPIO_PIN_x (x từ 0 đến 15)
➢ Trả về:
▪ GPIO_PIN_RESET: nếu chân ở mức 0 GPIO_PIN_SET: nếu chân ở mức 1
Ngọc Tuấn
Bài tập
Bài tập 1: Nhấn nút trên chân PA0 thì đèn trên chân PC13 bật, nhấn lần nữa đèn
tắt.
Bài tập 2: Nhấn nút trên chân PA0 đèn trên chân PC13 bật, nhấn giữ 3s đèn tắt
Ngọc Tuấn