STM32 F103RB support for mbed-rpc, tested just once with the blinking example
Dependents: rpc_over_serial_irq
Fork of mbed-rpc by
parse_pins.cpp
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2006-2013 ARM Limited 00003 */ 00004 #include "stmbed.h" 00005 #include "port_api.h" 00006 00007 namespace mbed { 00008 00009 PinName parse_pins(const char *str) { 00010 #if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) 00011 static const PinName pin_names[] = {p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 00012 , p15, p16, p17, p18, p19, p20, p21, p22, p23 00013 , p24, p25, p26, p27, p28, p29, p30}; 00014 #elif defined(TARGET_LPC1114) 00015 static const PinName pin_names[] = {dp1, dp2, dp4, dp5, dp6, dp9, dp10, dp11 00016 , dp13, dp14, dp15, dp16, dp17, dp18, dp23 00017 , dp24, dp25, dp26, dp27, dp28}; 00018 #elif defined(TARGET_LPC4088) 00019 static const PinName pin_names[] = {p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 00020 , p15, p16, p17, p18, p19, p20, NC, NC, p23 00021 , p24, p25, p26, p27, p28, p29, p30, p31, p32 00022 , p33, p34, NC, NC, p37, p38, p39}; 00023 00024 #elif defined(TARGET_STM32F4XX) || defined(TARGET_STM32F1XX) || defined(TARGET_NUCLEO_F103RB) 00025 static const PinName pin_names[] = { p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 00026 , p15, p16, p17, p18, p19, p20, p21, p22, p23 00027 , p24, p25, p26, p27, p28, p29, p30, p31, p32 00028 , p33, p34, NC, NC, NC, NC, NC}; 00029 #endif 00030 00031 #if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) || defined(TARGET_LPC812) || defined(TARGET_LPC4088)|| defined(TARGET_LPC1114) 00032 if (str[0] == 'P') { // Pn_n 00033 uint32_t port = str[1] - '0'; 00034 uint32_t pin = str[3] - '0'; // Pn_n 00035 uint32_t pin2 = str[4] - '0'; // Pn_nn 00036 if (pin2 <= 9) { 00037 pin = pin * 10 + pin2; 00038 } 00039 return port_pin((PortName)port, pin); 00040 00041 #elif defined(TARGET_KL25Z) 00042 if (str[0] == 'P' && str[1] == 'T') { // PTx_n 00043 uint32_t port = str[2] - 'A'; 00044 uint32_t pin = str[3] - '0'; // PTxn 00045 uint32_t pin2 = str[4] - '0'; // PTxnn 00046 00047 if (pin2 <= 9) { 00048 pin = pin * 10 + pin2; 00049 } 00050 return port_pin((PortName)port, pin); 00051 00052 #elif defined(TARGET_NUCLEO_F103RB) 00053 if (str[0] == 'P') { // Pn_n 00054 uint32_t port = str[1] - '0'; 00055 uint32_t pin = str[3] - '0'; // Pn_n 00056 uint32_t pin2 = str[4] - '0'; // Pn_nn 00057 if (pin2 <= 9) { 00058 pin = pin * 10 + pin2; 00059 } 00060 return port_pin((PortName)port, pin); 00061 #endif 00062 00063 #if defined(TARGET_NUCLEO_F103RB) || defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) \ 00064 || defined(TARGET_STM32F3XX) || defined(TARGET_STM32F4XX) 00065 /* defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L152RE) || \ 00066 defined(TARGET_NUCLEO_F302R8) || \ 00067 defined(TARGET_NUCLEO_F030R8) || \ 00068 defined(TARGET_NUCLEO_F401RE) || \ 00069 defined(TARGET_NUCLEO_F411RE) || \ 00070 defined(TARGET_NUCLEO_F072RB) || \ 00071 defined(TARGET_NUCLEO_F334R8) || \ 00072 defined(TARGET_NUCLEO_L053R8) 00073 //#define TXPIN STDIO_UART_TX 00074 //#endif 00075 //TARGET_NUCLEO_L152RE 00076 //TARGET_STM32F4XX) || defined(TARGET_STM32F1XX 00077 //TARGET_STM32F4XX) || defined(TARGET_STM32F103) 00078 */ 00079 } else if (str[0] == 'p') { // pn 00080 uint32_t pin = str[1] - '0'; // pn 00081 uint32_t pin2 = str[2] - '0'; // pnn 00082 if (pin2 <= 9) { 00083 pin = pin * 10 + pin2; 00084 } 00085 if (pin < 5 || pin > 30) { 00086 return NC; 00087 } 00088 return pin_names[pin - 5]; 00089 #elif defined(TARGET_LPC4088) 00090 } else if (str[0] == 'p') { // pn 00091 uint32_t pin = str[1] - '0'; // pn 00092 uint32_t pin2 = str[2] - '0'; // pnn 00093 if (pin2 <= 9) { 00094 pin = pin * 10 + pin2; 00095 } 00096 if (pin < 5 || pin > 39) { 00097 return NC; 00098 } 00099 return pin_names[pin - 5]; 00100 //#elif defined(TARGET_STM32F4XX) || defined(TARGET_STM32F1XX) 00101 // TODO: implement pin names specific to STM32 platform here 00102 #endif 00103 00104 } else if (str[0] == 'L') { // LEDn 00105 switch (str[3]) { 00106 case '1' : return LED1; 00107 case '2' : return LED2; 00108 case '3' : return LED3; 00109 case '4' : return LED4; 00110 } 00111 00112 } else if (str[0] == 'U') { // USB?X 00113 switch (str[3]) { 00114 case 'T' : return USBTX; 00115 case 'R' : return USBRX; 00116 } 00117 } 00118 00119 return NC; 00120 } 00121 00122 }
Generated on Wed Jul 13 2022 03:57:39 by
1.7.2
