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 раз

 
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