-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.
第一:
串口初始化参数介绍
1)串口编程的最大的难度就是初始化,用的参数非常多。
大家可能查看过网上一些关于串口的资料以及历史,由于串口的设计之初太过于复杂了,但是到了实际应用中,两线的串口(tx/rx)应用却是最广泛的。在实际应用中几乎很少看到有多线的,即使复杂一点也最多是添加一根流控。
这样会导致一个结果,网上的串口相关教程晦涩难懂,学习的时候不容易抓住重点。
2)本节内容将直接介绍应用中最多的一套初始化代码。这套代码尽量贴近实际,大家以后应
用的时候,要是传输的协议一样,可以直接拿来使用,不一样稍微修改一下参数的配置就能够
通信。
第二:
串口的初始化结构介绍
结构体termio几个常用的参数
成员 tcflag_t c_iflag:输入模式标志
成员 tcflag_t c_oflag:输出模式标志
成员 tcflag_t c_cflag:控制模式标志
成员 tcflag_t c_lflag:本地模式标志
成员 cc_t c_line:line discipline
成员 cc_t c_cc[NCC]:control characters
第三:
串口的初始化常用函数介绍
串口初始化步骤是
– 读取当前参数
– 修改参数
– 配置参数
1)• 函数tcgetattr
– 命令“man 3 tcgetattr”
2)• 读取当前参数函数
• int tcgetattr(int fd, struct termios *termios_p);
– 参数1:fd 是open 返回的文件句柄。
– 参数2:*termios_p 是前面介绍的结构体。
– 在初始化开始调用这个函数
3)• 获取当前波特率函数
• speed_t cfgetispeed(const struct termios *termios_p);
• speed_t cfgetospeed(const struct termios *termios_p);
– *termios_p:前面介绍的结构体
– 失败返回-1;成功返回波特率
4)• 波特率设置函数
• int cfsetispeed(struct termios *termios_p, speed_t speed);
• int cfsetospeed(struct termios *termios_p, speed_t speed);
– 参数*termios_p:前面介绍的结构体。
– 参数speed:speed 波特率,常用的B2400,B4800,B9600,B115200,
B460800 等等。
– 执行成功返回0,失败返回-1
5)• 清空串口BUFFER中的数据函数
• int tcflush(int fd, int queue_selector);
– 参数1:fd 是open 返回的文件句柄。
<