常驻嘉宾
- 积分
- 4106
- 威望
- 1956
- 贡献
- 1232
- 兑换币
- 1287
- 注册时间
- 2013-10-20
- 在线时间
- 459 小时
- 毕业学校
- 北京工业大学
|
楼主 麻烦帮我看一下 这是我的程序 用的是LPLD的库 根据你给的例程改的 我不知道为什么上位机没有显示 谢谢了
#include "common.h"
#define UartDataNum 17 //FreeCars上位机接收通道数,按照上位机设置改变
#define LineDataNum 128 //FreeCars上位机赛道数据,就是CCD图像宽度
uint8 uSendBuf[UartDataNum*2 + LineDataNum]={0};
uint8 FreeCarsDataNum=UartDataNum*2 + LineDataNum;
uint8 gpixel[128]={0};
UART_InitTypeDef uart4_init_struct; //声明
void uart_init(void)
{
uart4_init_struct.UART_Uartx = UART4; //使用UART5
uart4_init_struct.UART_BaudRate = 9600; //设置波特率9600
uart4_init_struct.UART_RxPin = PTC14; //接收引脚为PTE9
uart4_init_struct.UART_TxPin = PTC15; //发送引脚为PTE8
LPLD_UART_Init(uart4_init_struct); //初始化UART
}
void pixel(void) //测试图像
{
for(uint8 i=0;i<64;i++)
{
gpixel[i]=i;
}
for(uint8 i=64;i<128;i++)
{
gpixel[i]=127-i;
}
}
void push(uint8 ccd,uint16 date) //第几号ccd 阈值
{
uSendBuf[ccd*2]=date/256;
uSendBuf[ccd*2+1]=date%256;
}
void pushLineData(uint8 ccd,uint8 *data) //第几号ccd gpixel[]
{
int16 i;
int16 head=UartDataNum*2;
uSendBuf[UartDataNum*2] = ccd; //CCD选择,选择显示发送CCD的数据
for(i=0;i<LineDataNum;i++) //转移到发送缓冲区
{
uSendBuf[head + i+1 ] = data[i];
}
}
void uSendOnePage(void)
{
uint8 i,sum=0;
LPLD_UART_PutChar(UART4,251);
LPLD_UART_PutChar(UART4,107);
LPLD_UART_PutChar(UART4,37);; //使用轮询的方式发送数据,当数据未发送,程序停在此处知道发送完成
sum+=(251); //第偶数个数加入校验
sum+=(37);
for(i=0;i<FreeCarsDataNum/2;i++)
{
LPLD_UART_PutChar(UART4,uSendBuf[i*2]);
LPLD_UART_PutChar(UART4,uSendBuf[i*2+1]);
sum+=uSendBuf[i*2+1]; //第偶数个数加入校验
}
sum=sum%256;
LPLD_UART_PutChar(UART4,sum);
}
void main (void)
{
uart_init();
pixel();
while(1)
{
push(0,100); //第几号ccd 阈值
pushLineData(0,gpixel);
uSendOnePage();
}
}
我不知道为什么上位机没有显示
|
|