Difference between revisions of "Сериен порт"
From Ilianko
m (Protected "Упражнение 3. Сериен порт (1)" ([edit=sysop] (indefinite) [move=sysop] (indefinite))) |
|||
Line 2: | Line 2: | ||
Преговор типове данни, оператори. Достъп до сериен порт. | Преговор типове данни, оператори. Достъп до сериен порт. | ||
+ | == Променливи == | ||
+ | Преобразуване на буква в двоичен код | ||
+ | |||
+ | == Проверка по четност == | ||
+ | |||
+ | == Инсталация GTKTerm == | ||
+ | |||
+ | <code><pre> | ||
+ | :~$ sudo apt-get install gtkterm | ||
+ | </pre></code> | ||
+ | |||
+ | == Комуникация през терминал и сериен порт == | ||
+ | |||
+ | == Комуникация през C, POSIX и сериен порт == | ||
+ | |||
+ | == Сериен порт == | ||
− | |||
<code><pre> | <code><pre> | ||
Line 41: | Line 56: | ||
return 0; | return 0; | ||
} | } | ||
+ | |||
+ | </pre></code> | ||
+ | |||
+ | == Разглеждане на сигнал на сериен порт == | ||
+ | |||
+ | == Самостоятелна подготовка == | ||
− | |||
[[Category: Компютърна периферия]] | [[Category: Компютърна периферия]] |
Revision as of 14:52, 22 March 2011
Contents
Цел на упражнението
Преговор типове данни, оператори. Достъп до сериен порт.
Променливи
Преобразуване на буква в двоичен код
Проверка по четност
Инсталация GTKTerm
:~$ sudo apt-get install gtkterm
Комуникация през терминал и сериен порт
Комуникация през C, POSIX и сериен порт
Сериен порт
#include <stdio.h> /* Standard input/output definitions */
#include <string.h> /* String function definitions */
#include <unistd.h> /* UNIX standard function definitions */
#include <fcntl.h> /* File control definitions */
#include <errno.h> /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
int main(void)
{
int fd; // File descriptor for the port
struct termios options; // Serial port settings
fd = open( "/dev/ttyS0", O_RDWR | O_NOCTTY | O_NONBLOCK);
if (fd == -1)//Could not open the port.
perror("open_port: Unable to open port");
else
fcntl(fd, F_SETFL, 0);
tcgetattr(fd, &options);
cfsetispeed(&options, B2400);
cfsetospeed(&options, B2400);
options.c_cflag |= ( CREAD);
options.c_cflag |= ( CLOCAL);
options.c_cflag &= ( ~CSTOPB);
tcsetattr(fd,TCSANOW, &options);
write(fd, "a \n", 3); \\write to serial port
return 0;
}