2011-01-11 30 views
8

Tôi thấy hướng dẫn "printf" trong các mã mẫu của ngôn ngữ c cho vi điều khiển đặc biệt là vào năm 8051. Vì vi điều khiển không có hiển thị đầu ra cố định, việc sử dụng lệnh "printf" là gì?"printf" trong vi điều khiển, nó là gì?

+0

có thể chỉ là một số sơ khai cho trình kích thích/trình sửa lỗi? không thể nói mà không nhìn thấy mã nguồn của thư viện. –

Trả lời

16

Nhiều khả năng không, vì vậy bạn có thể đính kèm bảng điều khiển gỡ lỗi, thông qua cổng RS232 hoặc đầu ra ảo từ trình mô phỏng trong mạch.

7

Bạn có thể giao tiếp vi điều khiển với cổng nối tiếp của máy tính và theo dõi các dữ liệu bạn

printf

sử dụng HyperTerminal. Ngoài ra, bạn có thể sử dụng nó cho mục đích chẩn đoán

11

printf được xác định để xuất ra stdout không phải là "hiển thị đầu ra", thiết bị xuất chuẩn có thể là bất kỳ thiết bị truyền nào. Thông thường trên một hệ thống không có màn hình, nó sẽ xuất ra một giao diện nối tiếp (UART), sao cho một bộ mô phỏng đầu cuối hoặc đầu cuối (HyperTerminal hoặc TeraTerm chẳng hạn) có thể được sử dụng như một thiết bị hiển thị.

Một số môi trường phát triển thực hiện "bán lưu trữ" ở nơi stdio, stdin và stderr, và thậm chí trong một số trường hợp hệ thống tệp được cung cấp bởi máy chủ phát triển thông qua giao diện trình gỡ lỗi (JTAG, ICE, SWD, v.v.).

Nói chung thư viện của trình biên dịch sẽ cung cấp cho bạn móc hoặc cuống để bạn có thể thực hiện trình điều khiển cho các thiết bị I/O dòng thay thế, vì vậy ví dụ bạn có thể thực hiện nó để printf sẽ xuất ra màn hình LCD nếu thiết bị của bạn có . Điều này được gọi là "retargetting".

4

Một số công cụ phát triển cho phép bạn sử dụng printf đưa ra một thực hiện putchar hoặc putch. Trong các công cụ như vậy, vì bạn có chức năng này gửi các ký tự đến một số thiết bị, printf sẽ hiển thị các tin nhắn trên thiết bị đó.

Bạn chỉ cần thực hiện khởi tạo thiết bị chính xác, triển khai putchar, putch hoặc như vậy (kiểm tra trình biên dịch/tài liệu lib của bạn) và voilá! Printf của bạn sẽ hoạt động theo cách bạn mong đợi.

PS: Một số trình biên dịch/thư viện không triển khai tất cả các định dạng định dạng printf. Một lần nữa, hãy kiểm tra tài liệu của bạn.

Các vấn đề liên quan