วันอังคารที่ 9 เมษายน พ.ศ. 2556

STM32F3xx GPIO

สวัสดีครับบทความนี้จะเป์นการใช้งาน GPIO ของ stm32f3xx

  • 1.ประกาศ structure GPIO ชื่อ GPIO_InitStructure ดังนี้
     GPIO_InitTypeDef       GPIO_InitStructure;
  • 2.เปิดใช้งาน clock ของ GPIO port E โดยใช้คำสั่ง RCC_AHBPeriphClockCmd ดั้งนี้
     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);

  • 3.กำหนดค่าการทำงานของ GPIO ตัวอย่างจะใช้ pin 0 กับ 1 ดังนี้
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; // เลือก pin
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;           // เลือก mode เป็น digital out put
      GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;           // เลือกวงจรขับแบบ Push-pull
      GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;    // ไม่ต่อ R pull up และ pull down
      GPIO_Init(GPIOE, &GPIO_InitStructure);                               // กำหนดค่าลง port E

ตอนนี้ port E pin 0 กับ pin 1 จะเป็น digital out put และมีคำสั่งในการควบคุมต่างๆ ดังต่อไปนี้

GPIO_SetBits( GPIOz, GPIO_Pin_x);
GPIO_ResetBits(GPIOz, GPIO_Pin_x);
GPIO_WriteBit(GPIOz, GPIO_Pin_x, BITVALUE);
GPIO_Write(GPIOz, PORTVALUE);

*z แทนชื่อ port
*x แทนชื่อ pin