私はマイクロコントローラのプログラミングをとても新しくしています。私はUARTコミュニケーションdsPIC33EP256MU810
を使用してい
-
IDEとして
- MplabXのv3.26
- XC16コンパイラ
- てPICkit 3
- p33EP256MU810(DSPIC)
Iをプログラミングのための
非常にシンプルなプログラムを書いてLEDと点滅を点滅させるUART経由最後の数文字は、次のソースコードを参照してください。一部を点滅LED
#include <p33Exxxx.h>
#include <p33EP256MU810.h>
#include <libpic30.h>
#include <uart.h>
#include <stdlib.h>
#include <stdio.h>
#include <pps.h>
#include <xc.h>
#include <stdint.h>
// Configuration settings
_FOSC(FNOSC_FRCPLL);
_FWDT(FWDTEN_OFF);
int main()
{
//make all pins digital
PADCFG1 = 0xFFFF;
//set direction
TRISCbits.TRISC2 = 0;
//Initialze UART1
iPPSOutput(OUT_PIN_PPS_RP68, OUT_FN_PPS_U1TX);
//close UART
CloseUART1();
//open UART
OpenUART1( UART_EN & UART_IDLE_CON & UART_DIS_WAKE & UART_DIS_LOOPBACK & UART_DIS_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT,
UART_TX_ENABLE & UART_INT_TX & UART_ADR_DETECT_DIS,
15);
while (1)
{
//turn on led
LATCbits.LATC2 = 1;
__delay32(3750000); // ~1 sec delay
//turn off led
LATCbits.LATC2 = 0;
__delay32(3750000); // ~1 sec delay
//Transmit data
while(BusyUART1()); //Wail till available
WriteUART1(0x55);
WriteUART1(0xaa);
while(BusyUART1()); //Wail till all bytes sent
}
return 0;
}
は完璧に動作しますが、私はシリアルモニタツール(X-CTUを使用しているUARTのもう一方の端に文字化けを受け'M )を使用してデータを監視します。
私の大きな問題は、ボーレートを計算できないことです。私が何か悪いことをしているなら教えてください。
は