Professional Documents
Culture Documents
PA2/UART2_TX RXD
STM32F205VCT6 ESP8266
PA3/UART2_TX RXD
STT Tên phần cứng Vị trí chân vi điều Trạng thái phần Mức logic tại chân
khiển tương ứng cứng vi điều khiển
Trang 1/7
5. Báo cáo dự án Lập trình
Yêu cầu 1:
- Khởi tạo dự án và lập trình sử dụng printf in (liên tục, lặp lại) lên Terminal UART mã số sinh
viên của bạn. Trì hoãn giữa 2 lần truyền dữ liệu là 500ms.
Lưu đồ giải thuật từ lúc khởi tạo dự án
Start
While(1){
Print(“19146276”);
Delay(“500”) }
End
Mã nguồn chương trình (chỉ copy nội dung đã thêm hoặc chỉnh sửa từ code dự án)
Trang 2/7
#include "stdio.h"
struct __FILE
{
int handle;
};
/* FILE is typedef’d in stdio.h. */
FILE __stdout;
/* USER CODE END PV */
int fputc(int ch, FILE *f)
{
/* Your implementation of fputc(). */
HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,100);
return ch;
}
int main(void)
{
while (1)
{
/* USER CODE END WHILE */
Yêu cầu 2:
- In lên Terminal từng dòng sau. Ghi kết quả hiển thị trên Terminal ngay bên dưới
1. printf ("Integers: %i %u \n", -3456, 3456);
Interger: -3456 3456
Interger: -3456 3456
…
Yêu cầu 3:
Tạo dự án và lập trình debug để in ra Terminal đồng hồ đếm giờ : phút : giây
Ví dụ:
Trang 4/7
08:59:56
08:59:57
08:59:58
08:59:59
09:00:00
09:00:01
...
Lưu đồ giải thuật
Start
End
Mã nguồn chương trình (chỉ copy nội dung đã thêm hoặc chỉnh sửa từ code dự án)
char ch[]="11:30:30";
printf("%s\n", ch );
Trang 5/7
Yêu cầu 4:
Tạo dự án và lập trình debug để điều khiển đèn D1 như sau:
- Mỗi lần nhấn nút B1 đèn D1 đảo trạng thái. (từ tắt sang sáng và ngược lại)
- Mỗi khi đèn sáng, sử dụng printf gởi số lần nhấn nút lên Terminal
Lưu đồ giải thuật
Start
B1= False ;
D1= False;
PressCount= 0;
Vòng lặp
(while (1))
Đúng
#include <stdbool.h>
bool readButtonState() {
return ;
int main() {
while (1) {
ledState = !D1;
controlLED(D1);
// Cập nhật trạng thái nút B1 cho vòng lặp tiếp theo
B1= currentButtonState;
return 0;
Trang 7/7