Potřebujete pomoc na MSP430F425 sériové komunikace

S

superhuat

Guest
Ahoj všichni, já jsem v současné době pracuje na projektu.Potřebuji pro vysílání a příjem 10 bajtů dat mezi PC a MSP430F425.I am using timerA funkce MCU to udělat.Právě teď jsem schopen posílat a přijímat 1 byte z ascii dat mezi PC a MCU.Otázkou je, jak mám upravit kód pro odesílání a příjem 10 bajtů dat?Musím použít buffer pro ukládání dat byte na byte?10 bajtů dat bude se skládá z 5 informací (2 bajtech).Ještě jedna otázka, která je lepší - pomocí timerA nebo UART funkce MCU?Děkuji vám všem předem.BTW jsem pomocí IAR Vestavěné Workbench a výpis kód je zde -

-Hlavní
for (;

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Mrknutí" border="0" />(
RX_Ready (); / / UART připraven RX jeden bajt
_BIS_SR (LPM3_bits GIE); / / Enter LPM3 Do charakter RXed
TX_Byte ();
)

/ / Funkce Přenáší postava z RXTXData pufr
neplatné TX_Byte (void)
(
BitCnt = 0xA; / / Load Bit čítač, 8data ST / SP
CCR0 = TAR, / / Současný stav TA počítadlo
CCR0 = Bitime; / / Nějaký čas do první bit
RXTXData | = 0x100; / / Přidat značka stop bit na RXTXData
RXTXData = RXTXData <<1, / / Přidat prostor start bit
CCTL0 = OUTMOD0 CCIE; / / TXD = značka = idle
while (CCTL0 & CCIE), / / Počkat na dokončení TX
)/ / Funkce připravuje UART Dostávat znaků do RXTXData pufr
neplatné RX_Ready (void)
(
BitCnt = 0x8, / / Load Bit čítač
CCTL0 = SCS CCIS0 OUTMOD0 CM1 SZP CCIE; / / Sync, Neg Edge, Capture
)/ / Timer A0 přerušení provozu rutinní
# Pragma vektor = TIMERA0_VECTOR
__interrupt neplatné Timer_A (void)
(
CCR0 = Bitime; / / Přidat Posun k CCR0

/ / RX
if (CCTL0 & CCIS0) / / RX na CCI0B?
(
if (CCTL0 & CAP) / / Zachycení mode = start bit okraj
(
CCTL0 & = ~ SZP; / / zachycení porovnat režimu
CCR0 = Bitime_5;
)
jiný
(
RXTXData = RXTXData>> 1;

if (CCTL0 & SCCI) / / Získání bit čekal dostávat západku
RXTXData | = 0x80;
BitCnt -, / / Všechny bity RXed?
if (BitCnt == 0)
//>>>>>>>>>> Dekódování obdržených Byte Zde <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<
(
CCTL0 & = ~ CCIE; / / Všechny bity RXed, vypnout přerušení
_BIC_SR_IRQ (LPM3_bits); / / Clear LPM3 kousky od 0 (SR)
)
//>>>>>>>>>> Dekódování obdržených Byte Zde <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<
)
)
/ / TX
jiný
(
if (BitCnt == 0)
CCTL0 & = ~ CCIE; / / Všechny bity TXed, vypnout přerušení
jiný
(
CCTL0 | = OUTMOD2; / / TX vesmíru
if (RXTXData & 0x01)
CCTL0 & = ~ OUTMOD2; / / TX OZ
RXTXData = RXTXData>> 1;
BitCnt -;
)
)
)

 
hi,

Je to vždy jednoduché ovládání UART pro hromadné předávání údajů, ale prosím, aby u které UART modul availabke v přístroji.

Pokud jde o
S.rajesh Kumar

 
Ahoj Rajesh,

Jo, MSP430F425 přichází s modulem UART.Ale Ještě jsem používat, já používám timerA funkce MCU vykonávat sériový přenos.Víte, který je lepší?Díky.Přidáno po 2 hodinách 48 minut:Ahoj znovu, jsem zkoušet kód, který používá UART modul.Opět se stejným nastavením, to funguje.Jsem schopen poslat řetězce znaků / čísel z PC do MCU a zpět do PC.

Dále jsem podíváme na data segmentace a ukládání dat získaných od pc.

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsměv" border="0" />
P2SEL | = 0x30, / / P2.4, 5 = TXD USART0 / RXD
ME1 | = UTXE0 URXE0; / / Zapne TXD USART0 / RXD
UCTL0 | = CHAR; / / 8-bit charakter
UTCTL0 | = SSEL0; / / UCLK = ACLK
UBR00 = 0x0D; / / 32k/2400 - 13,65
UBR10 = 0x00, / /
UMCTL0 = 0x6B; / / modulace
UCTL0 & = ~ SWRST; / / inicializace USART stav stroje
IE1 | = URXIE0; / / Zapne USART0 RX přerušení

/ / Mainloop
for (;

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Mrknutí" border="0" />(
_BIS_SR (LPM3_bits GIE); / / Enter LPM3 w / přerušení
while (! (IFG1 & UTXIFG0)); / / USART0 TX bufferu připravená?
TXBUF0 = RXBUF0; / / RXBUF0 na TXBUF0
)/ / UART0 RX ISR bude pro výstup z LPM3 v Mainloop
# Pragma vektor = UART0RX_VECTOR
__interrupt neplatné usart0_rx (void)
(

_BIC_SR_IRQ (LPM3_bits); / / Clear LPM3 kousky od 0 (SR)
)

 
hi,

Má u svého cíle dosáhl, nebo u ještě nějaké problémy?Prosím, dejte nám vědět na to.Doufám, že u využívají rodiny uživatelské příručce 4x rodiny připojuje se tento post

Pokud jde o
S. Rajesh Kumar
Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu

 
Ahoj Rajesh,

Jo jsem to odkazem na referenční příručka.Na rozdíl od správců Pic, které jsem měl pracovat, MSP430 mají menší referenční materiály v porovnání s microPic.

Zatím tak dobrý, mám pracovní SD16, část LCD práci a část UART práci.Díky za pomoc.

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsměv" border="0" />

Vrátím se, když jsem uvízl, díky.

 

Welcome to EDABoard.com

Sponsor

Back
Top