ShadowWares Forum

Microcontroller => ARM => ข้อความที่เริ่มโดย: ShadowMan ที่ มิถุนายน 11, 2010, 06:22:04 pm



หัวข้อ: ARM--UART
เริ่มหัวข้อโดย: ShadowMan ที่ มิถุนายน 11, 2010, 06:22:04 pm
การใช้งาน UART ของ ARM (LPC213X) เบื้องต้น
บทความนี้เป็นผลพลอยได้มาจากคำถามที่มีคนถามผมมาทางอีเมล์ เพื่อให้เกิดประโยชน์ยิ่งขึ้นจึงขอนำโปรแกรมมาเขียนไว้ที่นี่ เผื่อจะเป็นประโยชน์กับผู้ที่หลงทางมา


Code: (c)

#include <LPC213X.H>

// กำหนดการทำงานของ UART ให้มีความเร็วที่ 96000 บิตต่อวินาทีที่ XTAL=11.0592MHz
void UartInit(void)
{
   PINSEL0 = 0x5;
   U0FCR   = 0x7;
   U0LCR   = 0x83;
   U0DLL   = 0x9;   // 96000 bps @ XTAL=11.0592MHz
   U0DLM   = 0x0;
   U0LCR   = 0x3;
}

// ส่งค่าออกไปทาง Serial Port โดยการเขียนค่าลงไปที่ U0THR
void UartWrite(char *str)
{
   unsigned char i=0;
   while(*(str+i))
   {
      U0THR=*(str+i); // !! ใช้ความสามารถของ FIFO ถ้าข้อมูลใน str ยาวเกินไปจะเกิดความผิดพลาดขึ้น
      i++;
   }
   while(!(U0LSR & (1<<6)));
}

// ฟังก์ชัน main เรียกใช้งานฟังก์ชัน UartInit() และ UartWrite()
int main(void)
{
   UartInit();

   UartWrite("shadowwares.com\r\n\0");

   while(1);
}



รายละเอียดไม่ขอพูดถึงนะครับ มีคำถาม หรือคำแนะนำเพิ่มเติม คลิกปุม "ตอบ" เลยครับ


หัวข้อ: Re: ARM--UART
เริ่มหัวข้อโดย: trose88 ที่ พฤษภาคม 26, 2011, 05:12:12 pm
เข้ามาจดก่อน ขอบพระคุณครับ


หัวข้อ: Re: ARM--UART
เริ่มหัวข้อโดย: dbdbz ที่ กันยายน 15, 2012, 10:51:12 pm
ขอบคุณมากครับ เป็นประโยชน์มากเลย ติดปัญหาตรงนี้อยู่นานเลย แก้ได้ซะที


หัวข้อ: Re: ARM--UART
เริ่มหัวข้อโดย: Mytheory ที่ กันยายน 26, 2012, 10:04:28 pm
สอบถามอีกนิดนึงได้มั๊ยครับ..
แล้วถ้า เราต่อ Xbee กับ UART เพิ่ม เราจะต้องเขียนโปรแกรม RSSI ลงบน UartWrite หรอครับ

หรือว่า ต้องสร้างขึ้นมาเองเลย

ขอบคุณครับ


หัวข้อ: Re: ARM--UART
เริ่มหัวข้อโดย: วิสิทธิ์ แผ้วกระโทก ที่ กันยายน 27, 2012, 08:51:42 am

ผมก็อยากลองเล่น XBee อยู่เหมือนกัน แต่ยังขาดแคลนอุปกรณ์ ลองศึกษาข้อมูลเพิ่มเติมของ Xbee ดูก่อนครับ

Tutorial XBee RF Modules E-book
http://microcontroller-electronics-update.blogspot.com/2012/09/tutorial-xbee-rf-modules-e-book.html




หัวข้อ: Re: ARM--UART
เริ่มหัวข้อโดย: dbdbz ที่ ตุลาคม 13, 2012, 07:21:16 pm
จาก comment ใช้ความสามารถของ FIFO ถ้าข้อมูลใน str ยาวเกินไปจะเกิดความผิดพลาดขึ้น 
ถ้าต้องการเขียน character ยาวกว่านี้ มีวิธีการแก้ไขอย่างไรบ้างครับ


หัวข้อ: Re: ARM--UART
เริ่มหัวข้อโดย: anon1206 ที่ พฤษภาคม 17, 2013, 07:38:39 pm
แล้วคำสั่งอ่านข้อมูลจาก uart เพื่อนำมาคำนวณในฝั่ง MCU เขียนยังไงครับ


หัวข้อ: Re: ARM--UART
เริ่มหัวข้อโดย: ShadowMan ที่ พฤษภาคม 18, 2013, 06:52:46 am
Code: (c)

if (U0LSR & 0x01) {         
    rx_data = U0RBR;         
    // process the rx_data here.