摘要: 最近一直在调试代码,在短短的时间内产生了大量的代码,还没有来得及总结。现在就总结一下用UART 发送数据块的方式,为什么采用数据块发送呢?一、块数据发送的方式可以提高发送效率;二、在需要发送一个数据帧的格式时,数据块的发送更实用。这里采用的是中断的方式,因此,缓冲区是必须的,笔者为这个通信方式设计了一个环形缓冲区,可以检测空信号,但不检测满信号。缓冲区的代码如下:View Code 1 #define BUFF_SIZE 16000 2 3 typedef struct 4 { 5 char data[BUFF_SIZE]; 6 volatile int read_pt, ... 阅读全文
posted @ 2012-09-19 16:48 xiangtailiang 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 最近在写GPS接收机向PC机发送数据的程序,GPS接收机每1ms产生一个积分数据,然后由ARM把这个积分数据量化为0和1。为了提高数据发送的效率,这里没有采用每1ms发送一个数据的方式,而是采用块发送的方式,采用ARM的串口发送数据块的中断来实现每次发送8字节的数据,发送8字节后,再在缓冲区读取下一个8字节块。积分数据量化为0和1后,仅仅需要1bit就可以存储了,在发送的时候,需要把8ms的积分数据拼接成一个字节,然后等待凑够8个字节的最低发送块大小时再发送,也就是说,每64ms才发送一次数据,一次就发送8字节。笔者的处理方式如下:采用状态机的方式,每1ms根据当前的状态来完成特定的任务,然后 阅读全文
posted @ 2012-09-19 16:12 xiangtailiang 阅读(810) 评论(0) 推荐(0) 编辑