Aaronli 0 23 июня, 2021 Опубликовано 23 июня, 2021 · Жалоба Я хочу попросить программу последовательной связи RS232C для микроконтроллера PIC18F4580, функция очень проста: что я посылаю на последовательный помощник, микроконтроллер будет отвечать обратно. Вот код, который я написал, чтобы послать 1 в последовательном помощнике, и полученный результат - 40. #include #pragma config OSC=HS //установите режим осциллятора на режим высокоскоростного кристалла #pragma config WDT=OFF //выключить сторожевой таймер #pragma config LVP=OFF //выключить низковольтное программирование #pragma config DEBUG=ON //разрешить отладку программы #pragma config MCLRE=ON //включение разрешения сброса микросхемы unsigned int i; void delay(); void PORT_init(); void USART_init(); /*===== установить задержку =====*/ void delay() { for(i=0;i<200;i++) { ; ; } } /*********** инициализация порта ***********/ void PORT_init() { TRISC=0x00; PORTC=0xff; } /*********** инициализация последовательного порта ***********/ void USART_init() { RCONbits.IPEN=0; INTCONbits.GIE=0; // отключить прерывания SPBRG=0x19; TXSTA=0x24; RCSTA=0x90; BAUDCONbits.BRG16=0; TRISCbits.TRISC6=0; TRISCbits.TRISC7=1; } /*===== главная программа =====*/ void main() { unsigned int j=0; PORT_init(); USART_init(); delay(); while(1) { if(PIR1bits.RCIF==1) { j=RCREG; TXREG=j; while(!PIR1bits.TXIF); PIR1bits.TXIF=0; } } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
siargy 6 25 августа, 2021 Опубликовано 25 августа, 2021 · Жалоба ну настройки вроде как у меня, но непонятна какая скорость. можно при старте кидать 0х55 для проверки. а впрочем есть рабочий пример бутлоадера через компорт с автоопределением скорости. Quote AN851, A FLASH Bootloader for PIC16 and PIC18 Devices AN1310, High-Speed Bootloader for ... - Microchip Technology можно и другие найти Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться