这是我一直在使用的用于与微控制器接口的串行程序的快速代码片段。该代码已经过验证可以工作,但我想添加全局定义以使代码更加模块化。显示的摘录有效,直到我将“cfsetispeed”中的“B1000000”替换为全局“BAUDRATE”。
// Globals
struct termios tty;
char BAUDRATE = B1000000; // 1,000,000
// All of the other details omitted ( int main (), etc. )
cfsetospeed (&tty, BAUDRATE);
cfsetispeed (&tty, B1000000);
于是想到了两个问题:
1) 我读到 Termios 只允许选择波特率,列出的最大值是 230,400。1,000,000是怎么被允许的?
2) 为什么 cfsetispeed() 不允许全局字符定义作为参数?