Giải thích giúp em một số hàm trong file UART.c

xe đạp

Trứng gà
trong file uart.c em xem có 5 hàm là

1. void uart_putc(char c)
2. void uart_puts(const char* s)
3. char uart_getc()
4. char uart_data_ready()
5. void uart_gets(char *s)

trong đó hàm số 1,2,4 thì em xem code cũng hiểu được nhưng đối với hàm:

- uart_getc() thì hàm này có phải có chức năng là nhận một ký tự từ máy tính gửi về đúng không ah???

- tương tự em nghĩ hàm uart_gets(char *s) cũng có chức năng tương tự nhưng là nhận một chuỗi ký tự, tuy nhiên xem kỹ thì em thấy nó là hàm không trả về giá trị vì dùng kiểu void, vậy nên cho em hỏi chức năng của hàm này là gì???

ngoài ra các anh chị có thể giải thích rõ hơn một chút về tất cả các hàm đó được ko ah??? chỉ cần nói công dụng thôi cũng được, vì em cũng mới tập viết C nên khả năng đọc code vẫn chưa tốt lắm
 
như bạn nói thì hàm char uart_getc() là hàm đọc một ký tự từ máy tính về.
còn hàm void uart_gets(char *s) là hàm đọc một chuỗi ký tự từ máy tính chuỗi phải kết thúc bằng ký tự NUN. hàm này không có trị trả về vì nó trả về là một ponter. tức là khi bạn dùng hàm này truyền vào cho nó là một địa chỉ của biến hoặc là ô nhớ chứ không phải là giá trị của biến. trong hàm đó nó sẽ thay đổi giá trị tại địa chỉ mà bạn truyền vào và các địa chỉ kế tiếp một ký tự là một địa chỉ cho đến khi gặp ký tự NUN thì sẽ thoát ra khỏi hàm. lúc đó giá trị của các địa chỉ kể từ địa chỉ bạn truyền vào đến độ dài của chuổi bị thay đổi. ví vụ: bạn nhận về chuổi "HELLO" dungf hàm void uart_gets(char *s) đối số mà bạn truyền vào cho hàm là địa chỉ ô nhớ 0x0020 thì sau khi trả về nó sẽ thay đổi các ô nhớ. từ 0x0020 cho đến 0x0025 vì chuỗi trên có 5 ký tự và một ký tự NUN.
 
Top