Skip to content

Commit 5d8952b

Browse files
authored
fix some bugs (#112)
1. Modify USART6 to UART6 (#92) 2. Fix X035 TIM2 interrupt issue 3. Fix compilation warning issues (#57)
1 parent 1433e97 commit 5d8952b

File tree

16 files changed

+117
-88
lines changed

16 files changed

+117
-88
lines changed

cores/arduino/HardwareSerial.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ void HardwareSerial::setHandler(void *handler)
272272
#endif
273273

274274
#if defined(HAVE_HWSERIAL6)
275-
HardwareSerial Serial6(USART6);
275+
HardwareSerial Serial6(UART6);
276276
#endif
277277

278278
#if defined(HAVE_HWSERIAL7)

cores/arduino/HardwareSerial.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,16 +173,16 @@ class HardwareSerial : public Stream {
173173
#if defined(UART4) || defined(USART4)
174174
extern HardwareSerial Serial4;
175175
#endif
176-
#if defined(UART5) || defined(USART5)
176+
#if defined(UART5)
177177
extern HardwareSerial Serial5;
178178
#endif
179-
#if defined(USART6)
179+
#if defined(UART6)
180180
extern HardwareSerial Serial6;
181181
#endif
182-
#if defined(UART7) || defined(USART7)
182+
#if defined(UART7)
183183
extern HardwareSerial Serial7;
184184
#endif
185-
#if defined(UART8) || defined(USART8)
185+
#if defined(UART8)
186186
extern HardwareSerial Serial8;
187187
#endif
188188

cores/arduino/HardwareTimer.cpp

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,12 @@ HardwareTimer::HardwareTimer(TIM_TypeDef *instance)
7070
#endif
7171

7272
#ifdef TIM2_BASE
73-
NVIC_EnableIRQ(TIM2_IRQn);
73+
#if defined(CH32X035)
74+
NVIC_EnableIRQ(TIM2_UP_IRQn);
75+
NVIC_EnableIRQ(TIM2_CC_IRQn);
76+
#else
77+
NVIC_EnableIRQ(TIM2_IRQn);
78+
#endif
7479
#endif
7580

7681
#if defined(TIM3_BASE) && !defined(CH32VM00X) //v006 has no interruption
@@ -1605,6 +1610,30 @@ extern "C" {
16051610
#endif //TIM1_BASE
16061611

16071612
#if defined(TIM2_BASE)
1613+
1614+
#if defined(CH32X035)
1615+
/**
1616+
* @brief TIM1 IRQHandler
1617+
* @param None
1618+
* @retval None
1619+
*/
1620+
void TIM2_UP_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
1621+
void TIM2_UP_IRQHandler(void)
1622+
{
1623+
if (HardwareTimer_Handle[TIMER2_INDEX]) {
1624+
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER2_INDEX]->handle);
1625+
}
1626+
}
1627+
1628+
void TIM2_CC_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
1629+
void TIM2_CC_IRQHandler(void)
1630+
{
1631+
if (HardwareTimer_Handle[TIMER2_INDEX]) {
1632+
HardwareTimer::captureCompareCallback(&HardwareTimer_Handle[TIMER2_INDEX]->handle);
1633+
}
1634+
}
1635+
1636+
#else
16081637
/**
16091638
* @brief TIM2 IRQHandler
16101639
* @param None
@@ -1615,11 +1644,12 @@ extern "C" {
16151644
{
16161645
if (HardwareTimer_Handle[TIMER2_INDEX])
16171646
{
1618-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER2_INDEX]->handle);
16191647
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER2_INDEX]->handle);
16201648
HardwareTimer::captureCompareCallback(&HardwareTimer_Handle[TIMER2_INDEX]->handle);
16211649
}
16221650
}
1651+
#endif
1652+
16231653
#endif //TIM2_BASE
16241654

16251655
#if defined(TIM3_BASE)
@@ -1632,7 +1662,6 @@ extern "C" {
16321662
void TIM3_IRQHandler(void)
16331663
{
16341664
if (HardwareTimer_Handle[TIMER3_INDEX]) {
1635-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER3_INDEX]->handle);
16361665
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER3_INDEX]->handle);
16371666
HardwareTimer::captureCompareCallback(&HardwareTimer_Handle[TIMER3_INDEX]->handle);
16381667
}
@@ -1649,7 +1678,6 @@ extern "C" {
16491678
void TIM4_IRQHandler(void)
16501679
{
16511680
if (HardwareTimer_Handle[TIMER4_INDEX]) {
1652-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER4_INDEX]->handle);
16531681
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER4_INDEX]->handle);
16541682
HardwareTimer::captureCompareCallback(&HardwareTimer_Handle[TIMER4_INDEX]->handle);
16551683
}
@@ -1666,7 +1694,6 @@ extern "C" {
16661694
void TIM5_IRQHandler(void)
16671695
{
16681696
if (HardwareTimer_Handle[TIMER5_INDEX]) {
1669-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER5_INDEX]->handle);
16701697
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER5_INDEX]->handle);
16711698
HardwareTimer::captureCompareCallback(&HardwareTimer_Handle[TIMER5_INDEX]->handle);
16721699
}
@@ -1699,7 +1726,6 @@ extern "C" {
16991726
void TIM7_IRQHandler(void)
17001727
{
17011728
if (HardwareTimer_Handle[TIMER7_INDEX]) {
1702-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER7_INDEX]->handle);
17031729
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER7_INDEX]->handle);
17041730
HardwareTimer::captureCompareCallback(&HardwareTimer_Handle[TIMER7_INDEX]->handle);
17051731
}
@@ -1716,15 +1742,13 @@ extern "C" {
17161742
void TIM8_UP_IRQHandler(void)
17171743
{
17181744
if (HardwareTimer_Handle[TIMER8_INDEX]) {
1719-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER8_INDEX]->handle);
17201745
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER8_INDEX]->handle);
17211746
}
17221747
}
17231748
void TIM8_CC_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
17241749
void TIM8_CC_IRQHandler(void)
17251750
{
17261751
if (HardwareTimer_Handle[TIMER8_INDEX]) {
1727-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER8_INDEX]->handle);
17281752
HardwareTimer::captureCompareCallback(&HardwareTimer_Handle[TIMER8_INDEX]->handle);
17291753
}
17301754
}
@@ -1740,7 +1764,6 @@ extern "C" {
17401764
void TIM9_UP_IRQHandler(void)
17411765
{
17421766
if (HardwareTimer_Handle[TIMER9_INDEX]) {
1743-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER9_INDEX]->handle);
17441767
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER9_INDEX]->handle);
17451768
}
17461769
}
@@ -1763,7 +1786,6 @@ extern "C" {
17631786
void TIM10_UP_IRQHandler(void)
17641787
{
17651788
if (HardwareTimer_Handle[TIMER10_INDEX]) {
1766-
// HAL_TIM_IRQHandler(&HardwareTimer_Handle[TIMER10_INDEX]->handle);
17671789
HardwareTimer::updateCallback(&HardwareTimer_Handle[TIMER10_INDEX]->handle);
17681790
}
17691791
}

cores/arduino/ch32/backup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ static inline void resetBackupDomain(void)
4040
#ifdef PWR_MODULE_ENABLED
4141
PWR_BackupAccessCmd(ENABLE);
4242
#endif
43-
#ifndef CH32V00x
43+
#if !defined(CH32V00x) && !defined(CH32VM00X) && !(CH32X035)
4444
RCC_BackupResetCmd(ENABLE);
4545
RCC_BackupResetCmd(DISABLE);
4646
#endif

cores/arduino/ch32/timer.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,12 @@ IRQn_Type getTimerUpIrq(TIM_TypeDef *tim)
339339
#endif
340340
#if defined(TIM2_BASE)
341341
case (uint32_t)TIM2_BASE:
342-
IRQn = TIM2_IRQn;
343-
break;
342+
#if defined(CH32X035)
343+
IRQn = TIM2_UP_IRQn;
344+
#else
345+
IRQn = TIM2_IRQn;
346+
#endif
347+
break;
344348
#endif
345349
#if defined(TIM3_BASE) && defined(TIM3_IRQn)
346350
case (uint32_t)TIM3_BASE:
@@ -409,7 +413,11 @@ IRQn_Type getTimerCCIrq(TIM_TypeDef *tim)
409413
#endif
410414
#if defined(TIM2_BASE)
411415
case (uint32_t)TIM2_BASE:
412-
IRQn = TIM2_IRQn;
416+
#if defined(CH32X035)
417+
IRQn = TIM2_CC_IRQn;
418+
#else
419+
IRQn = TIM2_IRQn;
420+
#endif
413421
break;
414422
#endif
415423
#if defined(TIM3_BASE) && defined(TIM3_IRQn)

variants/CH32L10x/CH32L103C8T6/PeripheralPins.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ WEAK const PinMap PinMap_ADC[] = {
3434
{PA_3, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 3)}, // ADC1_IN3
3535
{PA_4, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 4)}, // ADC1_IN4
3636
{PA_5, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 5)}, // ADC1_IN5
37-
{NC, NP, 0, 0, 0}
37+
{NC, NP, 0}
3838
};
3939
#endif
4040

@@ -45,14 +45,14 @@ WEAK const PinMap PinMap_ADC[] = {
4545
#ifdef I2C_MODULE_ENABLED
4646
WEAK const PinMap PinMap_I2C_SDA[] = {
4747
{PB_11, I2C2, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFOD, NOPULL, AFIO_NONE)},
48-
{NC, NP, 0, 0}
48+
{NC, NP, 0}
4949
};
5050
#endif
5151

5252
#ifdef I2C_MODULE_ENABLED
5353
WEAK const PinMap PinMap_I2C_SCL[] = {
5454
{PB_10, I2C2, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFOD, NOPULL, AFIO_NONE)},
55-
{NC, NP, 0, 0}
55+
{NC, NP, 0}
5656
};
5757
#endif
5858

@@ -83,36 +83,36 @@ WEAK const PinMap PinMap_TIM[] = {
8383
{PB_13, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 1)}, // TIM1_CH1N
8484
{PB_14, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 2)}, // TIM1_CH2N
8585
{PA_15, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 3)}, // TIM1_CH3N
86-
{NC, NP, 0, 0, 0}
86+
{NC, NP, 0}
8787
};
8888
#endif
8989

9090
//*** UART ***
9191
#ifdef UART_MODULE_ENABLED
9292
WEAK const PinMap PinMap_UART_TX[] = {
9393
{PA_9, USART1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
94-
{NC, NP, 0, 0}
94+
{NC, NP, 0}
9595
};
9696
#endif
9797

9898
#ifdef UART_MODULE_ENABLED
9999
WEAK const PinMap PinMap_UART_RX[] = {
100100
{PA_10, USART1, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
101-
{NC, NP, 0, 0}
101+
{NC, NP, 0}
102102
};
103103
#endif
104104

105105
#ifdef UART_MODULE_ENABLED
106106
WEAK const PinMap PinMap_UART_RTS[] = {
107107
{NC, USART1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
108-
{NC, NP, 0, 0}
108+
{NC, NP, 0}
109109
};
110110
#endif
111111

112112
#ifdef UART_MODULE_ENABLED
113113
WEAK const PinMap PinMap_UART_CTS[] = {
114114
{NC, USART1, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_PUPD, PULLUP, AFIO_NONE)},
115-
{NC, NP, 0, 0}
115+
{NC, NP, 0}
116116
};
117117
#endif
118118

@@ -121,28 +121,28 @@ WEAK const PinMap PinMap_UART_CTS[] = {
121121
#ifdef SPI_MODULE_ENABLED
122122
WEAK const PinMap PinMap_SPI_MOSI[] = {
123123
{PB_15, SPI2, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
124-
{NC, NP, 0, 0}
124+
{NC, NP, 0}
125125
};
126126
#endif
127127

128128
#ifdef SPI_MODULE_ENABLED
129129
WEAK const PinMap PinMap_SPI_MISO[] = {
130130
{PB_14, SPI2, CH_PIN_DATA(CH_MODE_INPUT, CH_CNF_INPUT_FLOAT, 0, AFIO_NONE)},
131-
{NC, NP, 0, 0}
131+
{NC, NP, 0}
132132
};
133133
#endif
134134

135135
#ifdef SPI_MODULE_ENABLED
136136
WEAK const PinMap PinMap_SPI_SCLK[] = {
137137
{PB_13, SPI2, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
138-
{NC, NP, 0, 0}
138+
{NC, NP, 0}
139139
};
140140
#endif
141141

142142
#ifdef SPI_MODULE_ENABLED
143143
WEAK const PinMap PinMap_SPI_SSEL[] = {
144144
{PB_12, SPI1, CH_PIN_DATA(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, 0, AFIO_NONE)},
145-
{NC, NP, 0, 0}
145+
{NC, NP, 0}
146146
};
147147
#endif
148148

variants/CH32V00x/CH32V003F4/PeripheralPins.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ WEAK const PinMap PinMap_ADC[] = {
3636
{PD_5, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 5)}, // ADC1_IN5
3737
{PA_6, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 6)}, // ADC1_IN6
3838
{PA_4, ADC1, CH_PIN_DATA_EXT(CH_MODE_INPUT, CH_CNF_INPUT_ANALOG, 0, AFIO_NONE, 7)}, // ADC1_IN7
39-
{NC, NP, 0, 0, 0}
39+
{NC, NP, 0}
4040
};
4141
#endif
4242

@@ -74,7 +74,7 @@ WEAK const PinMap PinMap_TIM[] = {
7474
{PD_0, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 1)}, // TIM1_CH1N
7575
{PA_2, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 2)}, // TIM1_CH2N
7676
{PD_1, TIM1, CH_PIN_DATA_EXT(CH_MODE_OUTPUT_50MHz, CH_CNF_OUTPUT_AFPP, NOPULL, AFIO_Remap_TIM1_DISABLE, 3)}, // TIM1_CH3N
77-
{NC, NP, 0, 0, 0}
77+
{NC, NP, 0}
7878
};
7979
#endif
8080

0 commit comments

Comments
 (0)