8000 Updated core STM32 library · AKrduino/arduino-stm32@3175e73 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3175e73

Browse files
committed
Updated core STM32 library
analogWrite working with 12 bit PWM
1 parent 48b0a14 commit 3175e73

File tree

7 files changed

+232
-87
lines changed

7 files changed

+232
-87
lines changed

hardware/cores/stm32/pins_stm32.c

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ uint8_t digital_pin_to_bitnumber[] = {
154154
};
155155

156156
const TIM_TypeDef * digital_pin_to_timer_PGM[] = {
157-
NOT_ON_TIMER, /* 0 - port A */
157+
TIM2, /* 0 - port A */
158158
TIM2,
159159
TIM2,
160160
TIM2,
@@ -205,7 +205,7 @@ const TIM_TypeDef * digital_pin_to_timer_PGM[] = {
205205
};
206206

207207
const uint8_t digital_pin_to_timer_chn[] = {
208-
NOT_ON_TIMER, /* 0 - port A */
208+
1, /* 0 - port A */
209209
2,
210210
3,
211211
4,
@@ -293,3 +293,54 @@ const uint8_t analog_chn_to_pin[] = {
293293
37
294294
};
295295

296+
uint8_t curPinMode[] = {
297+
INPUT,
298+
INPUT,
299+
INPUT,
300+
INPUT,
301+
INPUT,
302+
INPUT,
303+
INPUT,
304+
INPUT,
305+
INPUT,
306+
INPUT,
307+
INPUT,
308+
INPUT,
309+
INPUT,
310+
INPUT,
311+
INPUT,
312+
INPUT,
313+
INPUT,
314+
INPUT,
315+
INPUT,
316+
INPUT,
317+
INPUT,
318+
INPUT,
319+
INPUT,
320+
INPUT,
321+
INPUT,
322+
INPUT,
323+
INPUT,
324+
INPUT,
325+
INPUT,
326+
INPUT,
327+
INPUT,
328+
INPUT,
329+
INPUT,
330+
INPUT,
331+
INPUT,
332+
INPUT,
333+
INPUT,
334+
INPUT,
335+
INPUT,
336+
INPUT,
337+
INPUT,
338+
INPUT,
339+
INPUT,
340+
INPUT,
341+
INPUT,
342+
INPUT,
343+
INPUT,
344+
INPUT,
345+
INPUT
346+
};

hardware/cores/stm32/pins_stm32.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ extern const uint8_t digital_pin_to_timer_chn[];
4040

341A
4141
extern const GPIO_TypeDef * analog_chn_to_port[];
4242
extern const uint8_t analog_chn_to_pin[];
43+
extern uint8_t curPinMode[];
4344

4445
// Get the bit location within the hardware port of the given virtual pin.
4546
// This comes from the pins_*.c file for the active board configuration.

hardware/cores/stm32/stm32f10x_map.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,9 @@ typedef struct
532532
#define TIM2_BASE (APB1PERIPH_BASE + 0x0000)
533533
#define TIM3_BASE (APB1PERIPH_BASE + 0x0400)
534534
#define TIM4_BASE (APB1PERIPH_BASE + 0x0800)
535+
#define TIM5_BASE (APB1PERIPH_BASE + 0x0C00)
536+
#define TIM6_BASE (APB1PERIPH_BASE + 0x1000)
537+
#define TIM7_BASE (APB1PERIPH_BASE + 0x1400)
535538
#define RTC_BASE (APB1PERIPH_BASE + 0x2800)
536539
#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00)
537540
#define IWDG_BASE (APB1PERIPH_BASE + 0x3000)
@@ -557,6 +560,7 @@ typedef struct
557560
#define ADC2_BASE (APB2PERIPH_BASE + 0x2800)
558561
#define TIM1_BASE (APB2PERIPH_BASE + 0x2C00)
559562
#define SPI1_BASE (APB2PERIPH_BASE + 0x3000)
563+
#define TIM8_BASE (APB2PERIPH_BASE + 0x3400)
560564
#define USART1_BASE (APB2PERIPH_BASE + 0x3800)
561565

562566
#define DMA_BASE (AHBPERIPH_BASE + 0x0000)
@@ -595,6 +599,18 @@ typedef struct
595599
#define TIM4 ((TIM_TypeDef *) TIM4_BASE)
596600
#endif /*_TIM4 */
597601

602+
#ifdef _TIM5
603+
#define TIM5 ((TIM_TypeDef *) TIM5_BASE)
604+
#endif /*_TIM5 */
605+
606+
#ifdef _TIM6
607+
#define TIM6 ((TIM_TypeDef *) TIM6_BASE)
608+
#endif /*_TIM6 */
609+
610+
#ifdef _TIM7
611+
#define TIM7 ((TIM_TypeDef *) TIM7_BASE)
612+
#endif /*_TIM7 */
613+
598614
#ifdef _RTC
599615
#define RTC ((RTC_TypeDef *) RTC_BASE)
600616
#endif /*_RTC */
@@ -683,6 +699,10 @@ typedef struct
683699
#define SPI1 ((SPI_TypeDef *) SPI1_BASE)
684700
#endif /*_SPI1 */
685701

702 10000 +
#ifdef _TIM8
703+
#define TIM8 ((TIM1_TypeDef *) TIM8_BASE)
704+
#endif /*_TIM8 */
705+
686706
#ifdef _USART1
687707
#define USART1 ((USART_TypeDef *) USART1_BASE)
688708
#endif /*_USART1 */

hardware/cores/stm32/vectors_stm32.c

Lines changed: 86 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@ extern "C" {
1010
void ResetISR(void);
1111
void NmiSR(void);
1212
void FaultISR(void);
13-
void IntDefaultHandler(void);
13+
static void IntDefaultHandler(void);
14+
15+
void IntDefaultHandler(void)
16+
{
17+
// Go into an infinite loop.
18+
while(1)
19+
{
20+
}
21+
}
1422

1523
//*****************************************************************************
1624
//
@@ -20,27 +28,57 @@ void IntDefaultHandler(void);
2028

2129
extern void SysTickHandler(void);
2230
extern void USART1_IRQHandler(void);
23-
extern void USART2_IRQHandler(void);
31+
void USART2_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
32+
33+
void ADC_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
34+
void USART3_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
35+
void EXTI0_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
36+
void EXTI1_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
37+
void EXTI2_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
38+
void EXTI3_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
39+
void EXTI4_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
40+
void EXTI9_5_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
41+
void EXTI15_10_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
42+
void DMAChannel1_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
43+
void DMAChannel2_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
44+
void DMAChannel3_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
45+
void DMAChannel4_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
46+
void DMAChannel5_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
47+
void DMAChannel6_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
48+
void DMAChannel7_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
2449

25-
void __attribute__ ((weak)) ADC_IRQHandler (void) { };
26-
void __attribute__ ((weak)) USART3_IRQHandler (void) { };
27-
void __attribute__ ((weak)) EXTI0_IRQHandler (void) { };
28-
void __attribute__ ((weak)) EXTI1_IRQHandler (void) { };
29-
void __attribute__ ((weak)) EXTI2_IRQHandler (void) { };
30-
void __attribute__ ((weak)) EXTI3_IRQHandler (void) { };
31-
void __attribute__ ((weak)) EXTI4_IRQHandler (void) { };
32-
void __attribute__ ((weak)) I2C1_EV_IRQHandler (void) { };
33-
void __attribute__ ((weak)) I2C1_ER_IRQHandler (void) { };
34-
void __attribute__ ((weak)) I2C2_EV_IRQHandler (void) { };
35-
void __attribute__ ((weak)) I2C2_ER_IRQHandler (void) { };
50+
void I2C1_EV_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
51+
void I2C1_ER_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
52+
void I2C2_EV_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
53+
void I2C2_ER_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
3654

37-
void __attribute__ ((weak)) SPI1_IRQHandler (void) { };
38-
void __attribute__ ((weak)) SPI2_IRQHandler (void) { };
55+
void SPI1_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
56+
void SPI2_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
3957

40-
void __attribute__ ((weak)) TIM2_IRQHandler (void) { };
41-
void __attribute__ ((weak)) TIM3_IRQHandler (void) { };
42-
void __attribute__ ((weak)) TIM4_IRQHandler (void) { };
58+
void TIM1_BRK_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
59+
void TIM1_UP_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
60+
void TIM1_TRG_CCUP_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
61+
void TIM1_CC_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
62+
void TIM2_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
63+
void TIM3_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
64+
void TIM4_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
4365

66+
void TIM8_BRK_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
67+
void TIM8_UP_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
68+
void TIM8_TRG_CCUP_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
69+
void TIM8_CC_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
70+
void ADC3_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
71+
void SDIO_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
72+
void TIM5_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
73+
void SPI3_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
74+
void UART4_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
75+
void UART5_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
76+
void TIM6_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
77+
void TIM7_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
78+
void DMA2Channel1_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
79+
void DMA2Channel2_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
80+
void DMA2Channel3_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
81+
void DMA2Channel4_5_IRQHandler (void) __attribute__ ((weak, alias ("IntDefaultHandler")));
4482

4583
__attribute__ ((section(".vectors")))
4684
void (* const g_pfnVectors[])(void) =
@@ -70,23 +108,23 @@ void (* const g_pfnVectors[])(void) =
70108
EXTI2_IRQHandler, // EXTI2_IRQHandler,
71109
EXTI3_IRQHandler, // EXTI3_IRQHandler,
72110
EXTI4_IRQHandler, // (10) EXTI4_IRQHandler,
73-
IntDefaultHandler, // DMAChannel1_IRQHandler,
74-
IntDefaultHandler, // DMAChannel2_IRQHandler,
75-
IntDefaultHandler, // DMAChannel3_IRQHandler,
76-
IntDefaultHandler, // DMAChannel4_IRQHandler,
77-
IntDefaultHandler, // DMAChannel5_IRQHandler,
78-
IntDefaultHandler, // DMAChannel6_IRQHandler,
79-
IntDefaultHandler, // DMAChannel7_IRQHandler,
111+
DMAChannel1_IRQHandler, // DMAChannel1_IRQHandler,
112+
DMAChannel2_IRQHandler, // DMAChannel2_IRQHandler,
113+
DMAChannel3_IRQHandler, // DMAChannel3_IRQHandler,
114+
DMAChannel4_IRQHandler, // DMAChannel4_IRQHandler,
115+
DMAChannel5_IRQHandler, // DMAChannel5_IRQHandler,
116+
DMAChannel6_IRQHandler, // DMAChannel6_IRQHandler,
117+
DMAChannel7_IRQHandler, // DMAChannel7_IRQHandler,
80118
ADC_IRQHandler, // ADC_IRQHandler,
81119
IntDefaultHandler, // USB_HP_CAN_TX_IRQHandler,
82120
IntDefaultHandler, // (20) USB_LP_CAN_RX0_IRQHandler,
83121
IntDefaultHandler, // CAN_RX1_IRQHandler,
84122
IntDefaultHandler, // CAN_SCE_IRQHandler,
85-
IntDefaultHandler, // EXTI9_5_IRQHandler,
86-
IntDefaultHandler, // TIM1_BRK_IRQHandler,
87-
IntDefaultHandler, // TIM1_UP_IRQHandler,
88-
IntDefaultHandler, // TIM1_TRG_CCUP_IRQHandler,
89-
IntDefaultHandler, // TIM1_CC_IRQHandler,
123+
EXTI9_5_IRQHandler, // EXTI9_5_IRQHandler,
124+
TIM1_BRK_IRQHandler, // TIM1_BRK_IRQHandler,
125+
TIM1_UP_IRQHandler, // TIM1_UP_IRQHandler,
126+
TIM1_TRG_CCUP_IRQHandler, // TIM1_TRG_CCUP_IRQHandler,
127+
TIM1_CC_IRQHandler, // TIM1_CC_IRQHandler,
90128
TIM2_IRQHandler, // TIM2_IRQHandler,
91129
TIM3_IRQHandler, // TIM3_IRQHandler,
92130
TIM4_IRQHandler, // (30) TIM4_IRQHandler,
@@ -99,15 +137,27 @@ void (* const g_pfnVectors[])(void) =
99137
USART1_IRQHandler, // USART1_IRQHandler,
100138
USART2_IRQHandler, // USART2_IRQHandler,
101139
USART3_IRQHandler, // USART3_IRQHandler,
102-
IntDefaultHandler, // (40) EXTI15_10_IRQHandler,
140+
EXTI15_10_IRQHandler, // (40) EXTI15_10_IRQHandler,
103141
IntDefaultHandler, // RTCAlarm_IRQHandler,
104142
IntDefaultHandler, // USBWakeUp_IRQHandler,
105143
/* In part variants STM32F103xC, STM32F103xD, STM32F103xE */
106-
IntDefaultHandler, // TIM8_BRK_IRQHandler,
107-
IntDefaultHandler, // TIM8_UP_IRQHandler,
108-
IntDefaultHandler, // TIM8_TRG_CCUP_IRQHandler,
109-
IntDefaultHandler, // TIM8_CC_IRQHandler,
110-
IntDefaultHandler // ADC3_IRQHandler,
144+
TIM8_BRK_IRQHandler, // TIM8_BRK_IRQHandler,
145+
TIM8_UP_IRQHandler, // TIM8_UP_IRQHandler,
146+
TIM8_TRG_CCUP_IRQHandler, // TIM8_TRG_CCUP_IRQHandler,
147+
TIM8_CC_IRQHandler, // TIM8_CC_IRQHandler,
148+
ADC3_IRQHandler, // ADC3_IRQHandler,
149+
IntDefaultHandler, // FSMC_IRQHandler,
150+
SDIO_IRQHandler, // SDIO_IRQHandler,
151+
TIM5_IRQHandler, // (50) TIM5_IRQHandler,
152+
SPI3_IRQHandler, // SPI3_IRQHandler,
153+
UART4_IRQHandler, // UART4_IRQHandler,
154+
UART5_IRQHandler, // UART5_IRQHandler,
155+
TIM6_IRQHandler, // TIM6_IRQHandler,
156+
TIM7_IRQHandler, // TIM7_IRQHandler,
157+
DMA2Channel1_IRQHandler, // DMA2Channel1_IRQHandler,
158+
DMA2Channel2_IRQHandler, // DMA2Channel2_IRQHandler,
159+
DMA2Channel3_IRQHandler, // DMA2Channel3_IRQHandler,
160+
DMA2Channel4_5_IRQHandler // DMA2Channel4_5_IRQHandler,
111161
};
112162

113163

0 commit comments

Comments
 (0)
0