當前位置:編程學習大全網 - 源碼下載 - AVR單片機mega16如何將AD轉換後的數據通過UART發送出去

AVR單片機mega16如何將AD轉換後的數據通過UART發送出去

把轉換後的數據分成兩個字節,高字節在前或者低字節在前妳自己定,我習慣用協議,所以習慣用兩個字節表示壹個數據,然後讓單片機串口把這兩個字節發出去就行。比如妳ad轉換後的數據為十進制256,則要把十六進制100通過串口發出,先發01 ,再發00,最好遵循壹種協議,比如modbus協議,然後把數據放入壹個數組,這個數組就是遵循modbus的數組,操作單片機串口發送數組就行。如果妳轉換的數據時浮點數,最簡單的方法是確定好浮點數的小數點位數,然後將這個浮點數*100倍或者乘1000倍,變為整數發送,發出後在上位機或者另外單片機再除這個倍數還原。給妳個mega164p發送的程序。

串口0發送函數發送1個字符

************************************************************************/

void USART_Transmit0(unsigned char data) //串口0發送數據,查詢方式

{

while (!(UCSR0A & DATA_REGISTER_EMPTY0)); // 等待發送寄存器空

UDR0 = data; // 發送數據

//while(!(UCSR0A&(1<<TXC0)));

// UCSR0A|=(1<<TXC0);

}

/***********************************************************************

串口0發送函數發送n個字符

************************************************************************/

void usart0_transmit_array(unsigned char string[],unsigned char n)//n為數組長度

{

volatile unsigned char i;

for (i=0;i<n;i++)

{

USART_Transmit0(string[i]);

}

}

  • 上一篇:交易源代碼分析
  • 下一篇:[急!]java 求100階乘各位數的和 已有答案,求解釋!
  • copyright 2024編程學習大全網