• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: UART Transmitter 要如何一次送五筆字元給 UxTXB
#2
版主
版主


查看用戶資訊
不要這樣寫,怎麼可以一次就直接扔4筆資料進去,這樣很危險的。雖然內建有 4 層的 FIFO,萬一還有資料未傳送出去又連續扔4筆資料進去,那最後面的F一層資料就會被蓋掉了。
正確的作法是不要管她有幾層 FIFO 只要扔資料前先檢查一下TXIF 就可以了。

while (IFS0bits.U1TXIF ==1) U1TXREG = data[0];
while (IFS0bits.U1TXIF ==1) U1TXREG = data[1];
while (IFS0bits.U1TXIF ==1) U1TXREG = data[2];
while (IFS0bits.U1TXIF ==1) U1TXREG = data[3];
while (IFS0bits.U1TXIF ==1) U1TXREG = data[4];

發表於: 2009/10/7 14:05
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


UART Transmitter 要如何一次送五筆字元給 UxTXB
#1
新會員
新會員


查看用戶資訊
如題
一次丟五筆字元給 UxTXB
UART Transmitter 只會丟出前四筆字元
要如何正常丟出五筆字元

程式碼如下


#define __dsPIC30F2023__
#include <p30F2023.h>

#define FCY 20000000
#define BAUDRATE 9600
#define BRGVAL ((FCY/BAUDRATE)/16)-1



void UART_init(void);

int i=0,j=0;
int data[4];

int main(void)
{


UART_init();

for(i=0 ; i<4160 ; i++)
{
Nop();
}

data[0] = 0b00001111;
data[1] = 0b11110000;
data[2] = 0b10101010;
data[3] = 0b01010101;
data[4] = 0b00110011;


while(1)
{
while(IFS0bits.U1TXIF == 1)
{
U1TXREG = data[0];
U1TXREG = data[1];
U1TXREG = data[2];
U1TXREG = data[3];

U1TXREG = data[4];


IFS0bits.U1TXIF = 0;
}
}

}




void UART_init(void)
{
U1MODEbits.STSEL = 0; U1MODEbits.PDSEL = 0; U1MODEbits.ABAUD = 0; U1MODEbits.BRGH = 0; U1MODEbits.ALTIO = 1;
U1BRG = BRGVAL; U1STAbits.UTXISEL1 = 1; U1STAbits.UTXISEL0 = 0;
IEC0bits.U1TXIE = 0; U1MODEbits.UARTEN = 1; U1STAbits.UTXEN = 1;
}

發表於: 2009/10/6 19:08
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------