dspic30f4013 UART, Прохання дати мені руку!

K

kenny_zhou

Guest
Привіт усім! Будь ласка, дай мені руку!
це UART код, коли
комп'ютер СНЕД символу dsPIC30F4013 це добре, але коли dsPIC30F4013 не може відправити характер "0x41" до комп'ютера, то, що я повинен робити? Спасибо большое!

# Включити "p30f4013.h"
# Визначити FCY 14745600
_FOSC (CSW_FSCM_OFF
І XT_PLL8); / / використання зовнішнього кристалу, інструкція циклу = 1 / (* FOSC PLL / 4)
_FWDT (WDT_OFF);
_FBORPOR (PBOR_OFF
І MCLR_EN); / /
вимикання вимкнути pretect, включіть MCLR
_FGS (CODE_PROT_OFF); / / відключити код pretect
ini232 недійсним (недійсними);
недійсним __attribute__ ((__interrupt__)) _U1RXInterrupt (недійсними); / * заявляють 232 перервати ISRs * /
Непідписані символ rxdata;
INT основних (вакууму)
(
Непідписані символ I;
ini232 (); / * Виклик функції для ініціалізації 232 Переривання * /
для (i = 32; я! = 0; я -) / / почекати хвилину,
в той час як (1)
(
U1TXREG = 0x41;
а (U1STAbits.UTXBF);
IFS0bits.U1TXIF = 0;
)
)
ini232 недійсним (недійсними)
(

TRISFbits.TRISF2 = 1;
TRISFbits.TRISF3 = 0;
U1BRG = 95 / / 9600 швидкості
IPC2bits.U1RXIP = 7;
IEC0bits.U1TXIE = 0;
IEC0bits.U1RXIE = 1;
U1MODE = 0x8020;

U1STAbits.UTXEN = 1;

)
недійсним __attribute__ ((__interrupt__)) _U1RXInterrupt (вакууму)
(
IFS0bits.U1RXIF = 0;
rxdata = (символ) U1RXREG;

)
Останній раз редагувався kenny_zhou від 17 квітня 2007 13:19;, всього редагувався 2 раз

 
Sony w tajemnicy pracuje nad nowym urządzeniem o kodowej nazwie S1, które można określić jako PlayStation Tablet - donosi serwis Engadget.

Read more...
 
kenny_zhou писав:

Здравствуйте, everyone.Could ви дайте мені руку!

Я написати код UART використовувати dsp30f4013, але це не спрацює, я не знаю, що це probelm.It відходи мене багато time.Please дати мені декілька порад! Велике спасибі!# Включити <p30f4013.h># Визначити XTFREQ 7372800 / / Бортові Crystal частоти

# Визначити PLLMODE 8 / / On-чіпа настройка PLL

# Визначити FCY XTFREQ * PLLMODE / 4 / / Інструкція Цикл Частота

# Визначити BAUDRATE 9600 / / встановлення baudrate

# Визначити BRGVAL ((FCY / BAUDRATE) / 16) -1 / / ((FCY / BAUDRATE) / 16) -1 = 95, початкова baudrate регістру вартості/ / Біти конфігурації
Ви посилається на сайт www.ldv.ir

_FOSC (CSW_FSCM_OFF І XT_PLL8); / / використання зовнішнього кристалу, інструкція циклу = 1 / (* FOSC PLL / 4)

_FWDT (WDT_OFF);

_FBORPOR (PBOR_OFF І MCLR_EN); / / вимикання вимкнути pretect, включіть MCLR

_FGS (CODE_PROT_OFF); / / відключити код pretect/ / Непідписані символ DisplayData [] = ( "dsPIC30F4013Demo");

Непідписані символ * UARTCharPtr;

Непідписані символ DisplayData [] = ( "DSP");недійсним delay_ms (непідписані знаків);

недійсним delay_us (непідписані INT);

WriteUART_to_RS232 недійсним (недійсними);

InitUART1 недійсним (недійсними);

недійсним __attribute__ ((__interrupt__)) _U1TXInterrupt (недійсними);INT основних (вакууму)

(

ADPCFG = 0xFFFF; / / забезпечити порти для цифрового ICD2 налагодження

InitUART1 (); / / в початкових UART

в той час як (1)

(

WriteUART_to_RS232 (); / / updata RS232 через UART

delay_ms (250);

)

повернення 0; / / код nerver досягає тут!

)InitUART1 недійсним (недійсними)

(

Непідписані INT U1MODEvalue;

Непідписані INT U1STAvalue;

U1MODE = 0x0000 / / чітке UART1 MODE регістри

U1STA = 0x0000 / / чітке UART1 СТАН ТА КОНТРОЛЮ зареєструватися

U1MODEbits.ALTIO = 0; / / відключити U1ATX і U1ARX року U1TX і U1RX штирями бути використані для UART

U1MODEbits.UARTEN = 1; / / дозволити UART1 модуль

U1BRG = BRGVAL / / навантаження UART1 швидкість Generator

IFS0bits.U1RXIF = 0 / / чітке UART1 приймач перервати прапор

IFS0bits.U1TXIF = 0 / / чітке UART1 передавач перервати прапор

IEC0bits.U1RXIE = 0; / / відключити UART1 приймач ISR

IEC0bits.U1TXIE = 1; / / дозволити UART1 передавач ISR

IPC2bits.U1TXIP = 6;

IPC2bits.U1RXIP = 0;

U1STAbits.UTXISEL = 1; / / у перервати це gernerateed коли символу передається передачі регістр зсуву і передати буфер порожній

U1STAbits.UTXEN = 1; / / дозволити UART1 передавач

UARTCharPtr = І DisplayData [0] / / початковий UARTCharPtr вказувати на перший символ в буфер дисплея

)/ / WriteUART_to_RS232 () тригери перервати ініціативи UART повідомлення написання першого символу в буфер дисплея з UART передати реєстр

WriteUART_to_RS232 недійсним (недійсними)

(

UARTCharPtr = І DisplayData [0] / / Re-початковий UART відображення буфера покажчик вказує на перший символ

U1TXREG =* UARTCharPtr ;// Завантажте UART передає зареєструватися з першого символу

)/ / _U1TXInterrupt () Є UART1 TX Interrupt Поточне обслуговування

/ / У звичайних повинні мати глобальний характер, з тим щоб бути ISR.

/ / The ISR назва таке ж, як це передбачено модуль в пристрої Компоновнику сценарій.

/ / The UART1 ISR завантажує UART1 4 глибиною FIFO буфера в найближчі 4 charracters в буфер дисплея, якщо він стикається з нульовим символом.

недійсним __attribute__ ((__interrupt__)) _U1TXInterrupt (вакууму)

(

INT I = 0;

а ((* UARTCharPtr! = '\ 0')&&( I <4))

(

U1TXREG = (* UARTCharPtr );

I ;

)

IFS0bits.U1TXIF = 0; / / очистити UART1 TX перервати прапор

)/ * Затримка мілісекунди часу * /

недійсним delay_us (непідписані INT м)

(

для (; M> 0, M -)

(/ / Затримка 1us

Nop ();

Nop ();

Nop ();

Nop ();

Nop ();

Nop ();

Nop ();

Nop ();

Nop ();

Nop ();

)

)/ * Затримка мікросекундной час *

недійсним delay_ms (непідписані символ N)

(

для (; N> 0; N -)

(

delay_us (982);

)

)
 
Шановні mehdi_an:
Большое спасибо!
Тепер я знайти помилку, код right.the помилку в моєму ПКС.
Я плутати line2 і line4 з DB9.So MCU можуть отримувати дані з ПК використовується заставу 3, але можна було надіслано data.the дані transmite в line4,
тому ПК cann't захопити його.
hehe! яка сумна помилка!
Тепер ви можете "скасувати" на "допоможіть мені" прапор!

 

Welcome to EDABoard.com

Sponsor

Back
Top