QQ373466062 发表于 2010-10-6 23:37:12

Programming Notes :

1---   QT Serial Refference:
      http://blog.sina.com.cn/s/blog_5edf6e150100czyp.html

oldtom 发表于 2010-10-6 23:41:14

此贴是啥意思呢?

你是要做跨平台的串口通信吗?如果是跨平台通讯,可以选择ACE,他有串口的跨平台部分实现。
如果只是linux,那么可以直接操作tty的,没有必要这么麻烦。

QQ373466062 发表于 2010-10-13 17:47:40

谢谢楼上的好心人.

      本意是:    这个学期学C++    我想知道C++语法知识后    学学QT    用QT弄一个串口上位机软件,用于与下位机通讯和画实时曲线

QQ373466062 发表于 2010-10-30 21:52:45

2---      http://www.yafeilinux.com/?page_id=9

点击此处下载 ourdev_594092H0NMG3.rar(文件大小:2.85M) (原文件名:[.[.Qt串口通信专题教程.rar)

QQ373466062 发表于 2010-10-30 22:38:04

3--- 绘制实时曲线的一种想法             用了两个QTimer事件,一个画图,一个更新数据,
http://sns.akaedu.org/home/space.php?uid=250&do=blog&id=429

http://topic.csdn.net/u/20100728/15/fadb5721-9351-4dfc-a84a-f5054203402e.html

http://wenku.baidu.com/view/9cc6b38583d049649b6658d2.html

QQ373466062 发表于 2010-11-25 18:51:26

4---

通过将一个变量的地址强行绑定在一个位段的指针上,并通过该指针来访问位段,实现对该变量任意二进制位单独操作.
DATABit,例如,我要操作DATABit的第4位,怎么实现呢?
typedef struct
{
    unsigned bit0 :1;
    unsigned bit1 :1;
    unsigned bit2 :1;
    unsigned bit3 :1;
    unsigned bit4 :1;
    unsigned bit5 :1;
    unsigned bit6 :1;
    unsigned bit7 :1;
}BYTE2BIT;

byte DATABit;
void main(void) {

EnableInterrupts; /* enable interrupts */
/* include your code here */

(*((BYTE2BIT*)(&DATABit))).bit4=1;



for(;;) {
    __RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}

   对于byte变量DataBit,表达式先通过"&"运算获得其地址.
   接下来,将这一地址的类型强行绑定为指向位域Byte2Bit的指针
   最后,利用指针操作符"*",就可以对DataBit变量的任何一个二进制位了.

QQ373466062 发表于 2010-11-27 20:16:41

#define UTIL_BIN4(x)      (uchar)((0##x & 01000)/64 + (0##x & 0100)/16 + (0##x & 010)/4 + (0##x & 1))
#define UTIL_BIN8(hi, lo)   (uchar)(UTIL_BIN4(hi) * 16 + UTIL_BIN4(lo))

用的时候这样:
TCCR1A = UTIL_BIN8(1000, 0010);

=============
#define UTIL_ARG1(a, b)         a
#define UTIL_ARG2(a, b)         b
#define UTIL_CONCAT(a, b)         a ## b
#define UTIL_CONCAT_EXPANDED(a, b)UTIL_CONCAT(a, b)



#define PORT_PIN_SET(pinspec)   UTIL_CONCAT_EXPANDED(PORT, UTIL_ARG1(pinspec)) |= (1 << (UTIL_ARG2(pinspec)))
#define HWPIN_HVSP_SCI         B, 3

用的时候这样:
PORT_PIN_SET(HWPIN_HVSP_SCI);

===================================

#define UTIL_CONCAT(a, b) a ## b

意思就是把a和b按照字面连接起来
比方说
UTIL_CONCAT(1001,0110) 实际上就是10010110

#define PORT_PIN_SET(pinspec)   UTIL_CONCAT_EXPANDED(PORT, UTIL_ARG1(pinspec)) |= (1 << (UTIL_ARG2(pinspec)))
#define HWPIN_HVSP_SCI    B, 3

PORT_PIN_SET(HWPIN_HVSP_SCI);

实际上就是 PORTB |= (1 << 3)
一种位操作的方法。
======================================

##在ANSIC标准中只能用在宏定义中,所以VC6会出错,而GCC不是标准的ANSIC,所以不出错也就不奇怪了

#define BIN(x)      0##x

Edit1->Text = BIN(x);         // Edit1->Text = 010;   // 八进制的10 = 十进制的8

QQ373466062 发表于 2010-11-28 16:00:58

6--Teechar Pro 5.0 :

内部有SN XXourdev_600937AX2NEG.rar(文件大小:8.42M) (原文件名:Teechar.rar)
页: [1]
查看完整版本: Programming Notes :