亲爱的,我想把4个数字(每个14位)从DSPIC发送到UART上的PC。所以我试着把每个数字分成2个部分(每8个比特),然后用UART发送如下。得到一些随机输出。请帮忙?我的发送逻辑只包含在代码中。我应该接收“4242 1024 1234 3015”(十进制)或“1092 0400 04D2 0BC7”(HEX)。对的。。。。。。。。。。。?
以上来自于百度翻译
以下为原文
Dear all,
I want to send 4 numbers(each 14 bit) from dsPIC to PC over UART. So i tried to divide each number to 2 parts(each 8 bits) and send by UART as follows. Get
ting some random outputs. Please help?
My sending logic only included in code.
void Send_EnCoderInfo(unsigned int count1,unsigned int count2,unsigned int count3,unsigned int count4)
{
unsigned char cnt;
unsigned char send_buffer[12] = {0x00};
send_buffer[0] = count1>>8;
send_buffer[1] = count1 & 0xff;
send_buffer[2] = ' ';
send_buffer[3] = count2>>8;
send_buffer[4] = count2 & 0xff;
send_buffer[5] = ' ';
send_buffer[6] = count3>>8;
send_buffer[7] = count3 & 0xff;
send_buffer[8] = ' ';
send_buffer[9] = count4>>8;
send_buffer[10] = count4 & 0xff;
send_buffer[11] = ' ';
for(cnt = 0; cnt < 12; cnt++)
{
U2TXREG = (send_buffer[cnt]);
}
// U2TXREG =' '; //send space after each count value
U2TXREG = 0x0A; //keyboard enter after each count value
// U2TXREG = 0x0D; //keyboard enter after each count value
}
int main()
{
unsigned int encoder_count1=4242;
unsigned int encoder_count2=1024;
unsigned int encoder_count3=1234;
unsigned int encoder_count4=3025;
while(1)
{
Send_EnCoderInfo(encoder_count1,encoder_count2,encoder_count3,encoder_count4);
}
}
I should receive "
4242 1024 1234 3015"(decimal) or"
1092 0400 04D2 0BC7"(Hex). correct...........?