搜索
bottom↓
回复: 7

Programming Notes :

[复制链接]

出0入0汤圆

发表于 2010-10-6 23:37:12 | 显示全部楼层 |阅读模式
1---   QT Serial Refference:
        http://blog.sina.com.cn/s/blog_5edf6e150100czyp.html

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2010-10-6 23:41:14 | 显示全部楼层
此贴是啥意思呢?

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

出0入0汤圆

 楼主| 发表于 2010-10-13 17:47:40 | 显示全部楼层
谢谢楼上的好心人.

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

出0入0汤圆

 楼主| 发表于 2010-10-30 21:52:45 | 显示全部楼层
2---      http://www.yafeilinux.com/?page_id=9

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

出0入0汤圆

 楼主| 发表于 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

出0入0汤圆

 楼主| 发表于 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变量的任何一个二进制位了.

出0入0汤圆

 楼主| 发表于 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

出0入0汤圆

 楼主| 发表于 2010-11-28 16:00:58 | 显示全部楼层
6--  Teechar Pro 5.0 :

内部有SN XXourdev_600937AX2NEG.rar(文件大小:8.42M) (原文件名:Teechar.rar)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 10:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表