SOGO論壇

標題: Microchip PIC32入門(2)-GPIO實驗 [列印本頁]

作者: alphi    時間: 2011-12-1 01:40:54     標題: Microchip PIC32入門(2)-GPIO實驗

本帖最後由 alphi 於 2011-12-1 02:16 編輯

前言
    PIC32提供非常多的周邊模組包含UART,I2C,USB,GPIO,ADC,Timer,PMP,DMA,..等對於嵌入式系統來說非常的多.另外microchip本身針對PIC32與自家的PIC24提供
    各式各樣的Library例如Graphics,USB,Ethernet,Bluetooth等等Library(目前合併為Microchip Application Library),我本身就使用其Graphics Library+USB Library在FreeRTOS即時做業系統上整合
   
   
   從下圖可以看出PIC32 的GPIO架構
   

  TRISX暫存器為控制輸出或者輸入
  

實驗環境
   MCU: PIC32MX795L(128KB SRAM/512KB Flash/TQFP100/USB HOST/DEVICE/OTG,...)
   IDE: MPLAB 8.80
   編譯器: MPLAB C32 V2.01
   燒錄器: ICD3
   開發板:Explorer 16

   

   

程式碼
  1. #include <plib.h>

  2. // 編譯器參數
  3. // SYSCLK(核心工作頻率) = 80 MHz (8MHz Crystal/ FPLLIDIV * FPLLMUL / FPLLODIV)
  4. // PBCLK(周邊頻率) = (SYSCLK/8)=10 MHz
  5. // 主要石英震盪器來源 Osc w/PLL (XT+,HS+,EC+PLL)
  6. // 關閉Watchdog
  7. //
  8. #pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF
  9. #pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_8

  10. #define SYS_FREQ                         (80000000L)

  11. int main(void)
  12. {
  13.         int i;

  14.             //系統設定參數為80MHz,以及Prefetch Cache加快執行效能
  15.             SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);


  16.         // 因為Explorer 16 PORTA與JTAG共用,所以關閉JTAG功能.
  17.         mJTAGPortEnable(DEBUG_JTAGPORT_OFF);

  18.           //設定PORTA BIT7~BIT0為輸出(PIC32中,每一個PORT為16bit)
  19.           mPORTASetPinsDigitalOut( BIT_7 | BIT_6 | BIT_5 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0 );

  20.            //清除PORTA.7~PORTA.0為=0
  21.            mPORTAClearBits(BIT_7 | BIT_6 | BIT_5 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0 );

  22.            
  23.        
  24.         while(1)
  25.         {
  26.                       //將PORTA.7~PORTA.0狀態反轉(1->0,0->1)
  27.                 mPORTAToggleBits(BIT_7 | BIT_6 | BIT_5 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0 );

  28.                 // 延時
  29.                 i = 1024*1024;
  30.                 while(i--);
  31.         }
  32. }
複製代碼
結論
    由上述的範例可以看的出來,Microchip針對PIC32花了許多時間去寫Library.相較於ARM Cortex-M3的CMSIS(Cortex-M Series Interface Standard)函式庫來比(個人在用STM32開發一些東西)相對清晰易懂.接下來將會繼續介紹中斷與Timer,...等等PIC32入門

附件: pic32.png (2011-12-1 01:37:24, 52.54 KB) / 下載次數 13
https://oursogo.com/forum.php?mod=attachment&aid=OTg2Njk4fDU1ZTliZTVifDE3MTU5NDYzOTl8MHww

附件: pic33.png (2011-12-1 02:09:06, 854.65 KB) / 下載次數 13
https://oursogo.com/forum.php?mod=attachment&aid=OTg3MTU3fDE4MDUyOThjfDE3MTU5NDYzOTl8MHww

附件: pic34.png (2011-12-1 02:12:24, 63.7 KB) / 下載次數 13
https://oursogo.com/forum.php?mod=attachment&aid=OTg3MjI4fGUyMzJmMzMzfDE3MTU5NDYzOTl8MHww

附件: pic35.png (2011-12-1 02:14:55, 48.02 KB) / 下載次數 23
https://oursogo.com/forum.php?mod=attachment&aid=OTg3MjI5fGFkNDg2YTBkfDE3MTU5NDYzOTl8MHww




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM