I-O DATA DEV2 / Mbed 2 deprecated MCU-STDY2

Dependencies:   mbed

Revision:
0:e078ecb37ad7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Nov 13 04:02:41 2020 +0000
@@ -0,0 +1,45 @@
+#include "mbed.h"
+//勉強会
+//STM32 L0 GPIO定義 address 0x5000 0000
+// __IO は     volatile 
+// uint32_t は  unsigned long 
+ struct GPIO_
+{
+  __IO uint32_t MODER;       /*!< GPIO port mode register,               Address offset: 0x00      */
+  __IO uint32_t OTYPER;      /*!< GPIO port output type register,        Address offset: 0x04      */
+  __IO uint32_t OSPEEDR;     /*!< GPIO port output speed register,       Address offset: 0x08      */
+  __IO uint32_t PUPDR;       /*!< GPIO port pull-up/pull-down register,  Address offset: 0x0C      */
+  __IO uint32_t IDR;         /*!< GPIO port input data register,         Address offset: 0x10      */
+  __IO uint32_t ODR;         /*!< GPIO port output data register,        Address offset: 0x14      */
+  __IO uint32_t BSRR;        /*!< GPIO port bit set/reset  register,     Address offset: 0x18      */
+  __IO uint32_t LCKR;        /*!< GPIO port configuration lock register, Address offset: 0x1C      */
+  __IO uint32_t AFR[2];      /*!< GPIO alternate function registers,     Address offset: 0x20-0x24 */
+  __IO uint32_t BRR;         /*!< GPIO Bit Reset register,               Address offset: 0x28      */
+};
+typedef struct  GPIO_ GPIO_T;
+
+DigitalOut myled(LED1);
+
+int main() {
+    int i=0;
+    GPIO_T *pGPIO = (GPIO_T *)0x50000000;    //GPIO A base address
+    printf("\r\nGPIO Struct TEST\r\n");     
+    while(1) { 
+      wait(1);
+///      myled = !myled;
+#if 0
+      //LED port is GPIO_A bit 5
+      if (i&1) 
+        //pGPIO->ODR??; 
+      else 
+        //pGPIO->ODR??; 
+#else
+      if (i&1) 
+        pGPIO->BSRR = 0x20; //GPIO A BIT5 reset 
+      else 
+        pGPIO->BRR = 0x20 ; ////GPIO A BIT5 set
+
+#endif        
+     i++;      
+    }
+}