金牌会员
- 积分
- 2315
- 威望
- 1187
- 贡献
- 724
- 兑换币
- 706
- 注册时间
- 2012-9-13
- 在线时间
- 202 小时
- 毕业学校
- 曲阜师范大学
|
参考例程:
#define BYTE0(dwTemp) (*(char *)(&dwTemp))
#define BYTE1(dwTemp) (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp) (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp) (*((char *)(&dwTemp) + 3))//0最低,3最高
void Data_Send(void)//备注:10个通道不必全用,如果只使用几个通道,其他通道可以删除(先删后面的通道),节省串口传输时间
{
unsigned char data_to_send[50];
unsigned char _cnt=0;
int _temp;
float _f_temp;
unsigned char sum = 0,i = 0;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0x01;
data_to_send[_cnt++]=0;
_temp = (int)(0);//通道1
data_to_send[_cnt++]=BYTE0(_temp);//通道1
data_to_send[_cnt++]=BYTE1(_temp);//通道1
_temp = (int)(0);//通道2
data_to_send[_cnt++]=BYTE0(_temp);//通道2
data_to_send[_cnt++]=BYTE1(_temp);//通道2
_temp = (int)(0);//通道3
data_to_send[_cnt++]=BYTE0(_temp);//通道3
data_to_send[_cnt++]=BYTE1(_temp);//通道3
_f_temp=0;//传输浮点数据(任意通道都支持浮点数据)
data_to_send[_cnt++]=BYTE0(_f_temp);//通道4
data_to_send[_cnt++]=BYTE1(_f_temp);//通道4
data_to_send[_cnt++]=BYTE2(_f_temp);//通道4
data_to_send[_cnt++]=BYTE3(_f_temp);//通道4
data_to_send[3] = _cnt-4;
for( i=0;i<_cnt;i++)
sum += data_to_send[i];
data_to_send[_cnt++] = sum;
for(i=0;i<_cnt;i++)
uart_putchar(UART1,data_to_send[i]);
}
|
|