Skip to content

Commit 76f93d6

Browse files
committed
stm32f103xb_hic: Use CMSIS UART driver from CDC ACM
1 parent 8f8f4ea commit 76f93d6

File tree

4 files changed

+8
-611
lines changed

4 files changed

+8
-611
lines changed

records/hic_hal/stm32f103xb.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ common:
2222
- source/hic_hal/stm32/stm32f103xb
2323
- source/hic_hal/stm32/stm32f103xb/cmsis
2424
- source/hic_hal/stm32/stm32f103xb/STM32F1xx_HAL_Driver/Src
25+
- source/hic_hal/cmsis-driver/uart/uart.c
2526

2627
tool_specific:
2728
uvision:

source/hic_hal/stm32/stm32f103xb/IO_Config.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,9 @@ COMPILER_ASSERT(DAPLINK_HIC_ID == DAPLINK_HIC_ID_STM32F103XB);
8282
#define PIN_MSC_LED GPIO_PIN_9
8383
#define PIN_MSC_LED_Bit 9
8484

85+
#include "Driver_USART.h"
86+
extern ARM_DRIVER_USART Driver_USART2;
87+
#define CMSIS_UART_INSTANCE (Driver_USART2)
88+
#define CMSIS_UART_IRQ (USART2_IRQn)
8589

8690
#endif

source/hic_hal/stm32/stm32f103xb/RTE_Device.h

Lines changed: 3 additions & 349 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,10 @@
213213

214214
// <e> USART2 (Universal synchronous asynchronous receiver transmitter)
215215
// <i> Configuration settings for Driver_USART2 in component ::CMSIS Driver:USART
216-
#define RTE_USART2 0
216+
#define RTE_USART2 1
217217

218218
// <o> USART2_TX Pin <0=>Not Used <1=>PA2
219-
#define RTE_USART2_TX_PORT_ID_DEF 0
219+
#define RTE_USART2_TX_PORT_ID_DEF 1
220220
#if (RTE_USART2_TX_PORT_ID_DEF == 0)
221221
#define RTE_USART2_TX_DEF 0
222222
#elif (RTE_USART2_TX_PORT_ID_DEF == 1)
@@ -228,7 +228,7 @@
228228
#endif
229229

230230
// <o> USART2_RX Pin <0=>Not Used <1=>PA3
231-
#define RTE_USART2_RX_PORT_ID_DEF 0
231+
#define RTE_USART2_RX_PORT_ID_DEF 1
232232
#if (RTE_USART2_RX_PORT_ID_DEF == 0)
233233
#define RTE_USART2_RX_DEF 0
234234
#elif (RTE_USART2_RX_PORT_ID_DEF == 1)
@@ -404,350 +404,4 @@
404404

405405
// </e>
406406

407-
408-
// <e> USART3 (Universal synchronous asynchronous receiver transmitter)
409-
// <i> Configuration settings for Driver_USART3 in component ::CMSIS Driver:USART
410-
#define RTE_USART3 0
411-
412-
// <o> USART3_TX Pin <0=>Not Used <1=>PB10
413-
#define RTE_USART3_TX_PORT_ID_DEF 0
414-
#if (RTE_USART3_TX_PORT_ID_DEF == 0)
415-
#define RTE_USART3_TX_DEF 0
416-
#elif (RTE_USART3_TX_PORT_ID_DEF == 1)
417-
#define RTE_USART3_TX_DEF 1
418-
#define RTE_USART3_TX_PORT_DEF GPIOB
419-
#define RTE_USART3_TX_BIT_DEF 10
420-
#else
421-
#error "Invalid USART3_TX Pin Configuration!"
422-
#endif
423-
424-
// <o> USART3_RX Pin <0=>Not Used <1=>PB11
425-
#define RTE_USART3_RX_PORT_ID_DEF 0
426-
#if (RTE_USART3_RX_PORT_ID_DEF == 0)
427-
#define RTE_USART3_RX_DEF 0
428-
#elif (RTE_USART3_RX_PORT_ID_DEF == 1)
429-
#define RTE_USART3_RX_DEF 1
430-
#define RTE_USART3_RX_PORT_DEF GPIOB
431-
#define RTE_USART3_RX_BIT_DEF 11
432-
#else
433-
#error "Invalid USART3_RX Pin Configuration!"
434-
#endif
435-
436-
// <o> USART3_CK Pin <0=>Not Used <1=>PB12
437-
#define RTE_USART3_CK_PORT_ID_DEF 0
438-
#if (RTE_USART3_CK_PORT_ID_DEF == 0)
439-
#define RTE_USART3_CK_DEF 0
440-
#elif (RTE_USART3_CK_PORT_ID_DEF == 1)
441-
#define RTE_USART3_CK_DEF 1
442-
#define RTE_USART3_CK_PORT_DEF GPIOB
443-
#define RTE_USART3_CK_BIT_DEF 12
444-
#else
445-
#error "Invalid USART3_CK Pin Configuration!"
446-
#endif
447-
448-
// <o> USART3_CTS Pin <0=>Not Used <1=>PB13
449-
#define RTE_USART3_CTS_PORT_ID_DEF 0
450-
#if (RTE_USART3_CTS_PORT_ID_DEF == 0)
451-
#define RTE_USART3_CTS_DEF 0
452-
#elif (RTE_USART3_CTS_PORT_ID_DEF == 1)
453-
#define RTE_USART3_CTS_DEF 1
454-
#define RTE_USART3_CTS_PORT_DEF GPIOB
455-
#define RTE_USART3_CTS_BIT_DEF 13
456-
#else
457-
#error "Invalid USART3_CTS Pin Configuration!"
458-
#endif
459-
460-
// <o> USART3_RTS Pin <0=>Not Used <1=>PB14
461-
#define RTE_USART3_RTS_PORT_ID_DEF 0
462-
#if (RTE_USART3_RTS_PORT_ID_DEF == 0)
463-
#define RTE_USART3_RTS_DEF 0
464-
#elif (RTE_USART3_RTS_PORT_ID_DEF == 1)
465-
#define RTE_USART3_RTS_DEF 1
466-
#define RTE_USART3_RTS_PORT_DEF GPIOB
467-
#define RTE_USART3_RTS_BIT_DEF 14
468-
#else
469-
#error "Invalid USART3_RTS Pin Configuration!"
470-
#endif
471-
472-
// <e> USART3 Partial Pin Remap
473-
// <i> Enable USART3 Partial Pin Remapping
474-
#define RTE_USART3_REMAP_PARTIAL 0
475-
476-
// <o> USART3_TX Pin <0=>Not Used <1=>PC10
477-
#define RTE_USART3_TX_PORT_ID_PARTIAL 0
478-
#if (RTE_USART3_TX_PORT_ID_PARTIAL == 0)
479-
#define RTE_USART3_TX_PARTIAL 0
480-
#elif (RTE_USART3_TX_PORT_ID_PARTIAL == 1)
481-
#define RTE_USART3_TX_PARTIAL 1
482-
#define RTE_USART3_TX_PORT_PARTIAL GPIOC
483-
#define RTE_USART3_TX_BIT_PARTIAL 10
484-
#else
485-
#error "Invalid USART3_TX Pin Configuration!"
486-
#endif
487-
488-
// <o> USART3_RX Pin <0=>Not Used <1=>PC11
489-
#define RTE_USART3_RX_PORT_ID_PARTIAL 0
490-
#if (RTE_USART3_RX_PORT_ID_PARTIAL == 0)
491-
#define RTE_USART3_RX_PARTIAL 0
492-
#elif (RTE_USART3_RX_PORT_ID_PARTIAL == 1)
493-
#define RTE_USART3_RX_PARTIAL 1
494-
#define RTE_USART3_RX_PORT_PARTIAL GPIOC
495-
#define RTE_USART3_RX_BIT_PARTIAL 11
496-
#else
497-
#error "Invalid USART3_RX Pin Configuration!"
498-
#endif
499-
500-
// <o> USART3_CK Pin <0=>Not Used <1=>PC12
501-
#define RTE_USART3_CK_PORT_ID_PARTIAL 0
502-
#if (RTE_USART3_CK_PORT_ID_PARTIAL == 0)
503-
#define RTE_USART3_CK_PARTIAL 0
504-
#elif (RTE_USART3_CK_PORT_ID_PARTIAL == 1)
505-
#define RTE_USART3_CK_PARTIAL 1
506-
#define RTE_USART3_CK_PORT_PARTIAL GPIOC
507-
#define RTE_USART3_CK_BIT_PARTIAL 12
508-
#else
509-
#error "Invalid USART3_CK Pin Configuration!"
510-
#endif
511-
// </e>
512-
513-
// <e> USART3 Full Pin Remap
514-
// <i> Enable USART3 Full Pin Remapping
515-
#define RTE_USART3_REMAP_FULL 0
516-
517-
// <o> USART3_TX Pin <0=>Not Used <1=>PD8
518-
#define RTE_USART3_TX_PORT_ID_FULL 0
519-
#if (RTE_USART3_TX_PORT_ID_FULL == 0)
520-
#define RTE_USART3_TX_FULL 0
521-
#elif (RTE_USART3_TX_PORT_ID_FULL == 1)
522-
#define RTE_USART3_TX_FULL 1
523-
#define RTE_USART3_TX_PORT_FULL GPIOD
524-
#define RTE_USART3_TX_BIT_FULL 8
525-
#else
526-
#error "Invalid USART3_TX Pin Configuration!"
527-
#endif
528-
529-
// <o> USART3_RX Pin <0=>Not Used <1=>PD9
530-
#define RTE_USART3_RX_PORT_ID_FULL 0
531-
#if (RTE_USART3_RX_PORT_ID_FULL == 0)
532-
#define RTE_USART3_RX_FULL 0
533-
#elif (RTE_USART3_RX_PORT_ID_FULL == 1)
534-
#define RTE_USART3_RX_FULL 1
535-
#define RTE_USART3_RX_PORT_FULL GPIOD
536-
#define RTE_USART3_RX_BIT_FULL 9
537-
#else
538-
#error "Invalid USART3_RX Pin Configuration!"
539-
#endif
540-
541-
// <o> USART3_CK Pin <0=>Not Used <1=>PD10
542-
#define RTE_USART3_CK_PORT_ID_FULL 0
543-
#if (RTE_USART3_CK_PORT_ID_FULL == 0)
544-
#define RTE_USART3_CK_FULL 0
545-
#elif (RTE_USART3_CK_PORT_ID_FULL == 1)
546-
#define RTE_USART3_CK_FULL 1
547-
#define RTE_USART3_CK_PORT_FULL GPIOD
548-
#define RTE_USART3_CK_BIT_FULL 10
549-
#else
550-
#error "Invalid USART3_CK Pin Configuration!"
551-
#endif
552-
553-
// <o> USART3_CTS Pin <0=>Not Used <1=>PD11
554-
#define RTE_USART3_CTS_PORT_ID_FULL 0
555-
#if (RTE_USART3_CTS_PORT_ID_FULL == 0)
556-
#define RTE_USART3_CTS_FULL 0
557-
#elif (RTE_USART3_CTS_PORT_ID_FULL == 1)
558-
#define RTE_USART3_CTS_FULL 1
559-
#define RTE_USART3_CTS_PORT_FULL GPIOD
560-
#define RTE_USART3_CTS_BIT_FULL 11
561-
#else
562-
#error "Invalid USART3_CTS Pin Configuration!"
563-
#endif
564-
565-
// <o> USART3_RTS Pin <0=>Not Used <1=>PD12
566-
#define RTE_USART3_RTS_PORT_ID_FULL 0
567-
#if (RTE_USART3_RTS_PORT_ID_FULL == 0)
568-
#define RTE_USART3_RTS_FULL 0
569-
#elif (RTE_USART3_RTS_PORT_ID_FULL == 1)
570-
#define RTE_USART3_RTS_FULL 1
571-
#define RTE_USART3_RTS_PORT_FULL GPIOD
572-
#define RTE_USART3_RTS_BIT_FULL 12
573-
#else
574-
#error "Invalid USART3_RTS Pin Configuration!"
575-
#endif
576-
// </e>
577-
578-
#if ((RTE_USART3_REMAP_PARTIAL == 1) && (RTE_USART3_REMAP_FULL == 1))
579-
#error "Invalid USART3 Pin Remap Configuration!"
580-
#endif
581-
582-
#if (RTE_USART3_REMAP_FULL)
583-
#define RTE_USART3_AF_REMAP AFIO_USART3_REMAP_FULL
584-
#define RTE_USART3_TX RTE_USART3_TX_FULL
585-
#define RTE_USART3_TX_PORT RTE_USART3_TX_PORT_FULL
586-
#define RTE_USART3_TX_BIT RTE_USART3_TX_BIT_FULL
587-
#define RTE_USART3_RX RTE_USART3_RX_FULL
588-
#define RTE_USART3_RX_PORT RTE_USART3_RX_PORT_FULL
589-
#define RTE_USART3_RX_BIT RTE_USART3_RX_BIT_FULL
590-
#define RTE_USART3_CK RTE_USART3_CK_FULL
591-
#define RTE_USART3_CK_PORT RTE_USART3_CK_PORT_FULL
592-
#define RTE_USART3_CK_BIT RTE_USART3_CK_BIT_FULL
593-
#define RTE_USART3_CTS RTE_USART3_CTS_FULL
594-
#define RTE_USART3_CTS_PORT RTE_USART3_CTS_PORT_FULL
595-
#define RTE_USART3_CTS_BIT RTE_USART3_CTS_BIT_FULL
596-
#define RTE_USART3_RTS RTE_USART3_RTS_FULL
597-
#define RTE_USART3_RTS_PORT RTE_USART3_RTS_PORT_FULL
598-
#define RTE_USART3_RTS_BIT RTE_USART3_RTS_BIT_FULL
599-
#elif (RTE_USART3_REMAP_PARTIAL)
600-
#define RTE_USART3_AF_REMAP AFIO_USART3_REMAP_PARTIAL
601-
#define RTE_USART3_TX RTE_USART3_TX_PARTIAL
602-
#define RTE_USART3_TX_PORT RTE_USART3_TX_PORT_PARTIAL
603-
#define RTE_USART3_TX_BIT RTE_USART3_TX_BIT_PARTIAL
604-
#define RTE_USART3_RX RTE_USART3_RX_PARTIAL
605-
#define RTE_USART3_RX_PORT RTE_USART3_RX_PORT_PARTIAL
606-
#define RTE_USART3_RX_BIT RTE_USART3_RX_BIT_PARTIAL
607-
#define RTE_USART3_CK RTE_USART3_CK_PARTIAL
608-
#define RTE_USART3_CK_PORT RTE_USART3_CK_PORT_PARTIAL
609-
#define RTE_USART3_CK_BIT RTE_USART3_CK_BIT_PARTIAL
610-
#define RTE_USART3_CTS RTE_USART3_CTS_DEF
611-
#define RTE_USART3_CTS_PORT RTE_USART3_CTS_PORT_DEF
612-
#define RTE_USART3_CTS_BIT RTE_USART3_CTS_BIT_DEF
613-
#define RTE_USART3_RTS RTE_USART3_RTS_DEF
614-
#define RTE_USART3_RTS_PORT RTE_USART3_RTS_PORT_DEF
615-
#define RTE_USART3_RTS_BIT RTE_USART3_RTS_BIT_DEF
616-
#else
617-
#define RTE_USART3_AF_REMAP AFIO_USART3_NO_REMAP
618-
#define RTE_USART3_TX RTE_USART3_TX_DEF
619-
#define RTE_USART3_TX_PORT RTE_USART3_TX_PORT_DEF
620-
#define RTE_USART3_TX_BIT RTE_USART3_TX_BIT_DEF
621-
#define RTE_USART3_RX RTE_USART3_RX_DEF
622-
#define RTE_USART3_RX_PORT RTE_USART3_RX_PORT_DEF
623-
#define RTE_USART3_RX_BIT RTE_USART3_RX_BIT_DEF
624-
#define RTE_USART3_CK RTE_USART3_CK_DEF
625-
#define RTE_USART3_CK_PORT RTE_USART3_CK_PORT_DEF
626-
#define RTE_USART3_CK_BIT RTE_USART3_CK_BIT_DEF
627-
#define RTE_USART3_CTS RTE_USART3_CTS_DEF
628-
#define RTE_USART3_CTS_PORT RTE_USART3_CTS_PORT_DEF
629-
#define RTE_USART3_CTS_BIT RTE_USART3_CTS_BIT_DEF
630-
#define RTE_USART3_RTS RTE_USART3_RTS_DEF
631-
#define RTE_USART3_RTS_PORT RTE_USART3_RTS_PORT_DEF
632-
#define RTE_USART3_RTS_BIT RTE_USART3_RTS_BIT_DEF
633-
#endif
634-
635-
// <e> DMA Rx
636-
// <o1> Number <1=>1
637-
// <i> Selects DMA Number (only DMA1 can be used)
638-
// <o2> Channel <3=>3
639-
// <i> Selects DMA Channel (only Channel 3 can be used)
640-
// <o3> Priority <0=>Low <1=>Medium <2=>High <3=>Very high
641-
// <i> Sets DMA Channel priority
642-
// </e>
643-
#define RTE_USART3_RX_DMA 0
644-
#define RTE_USART3_RX_DMA_NUMBER 1
645-
#define RTE_USART3_RX_DMA_CHANNEL 3
646-
#define RTE_USART3_RX_DMA_PRIORITY 0
647-
648-
// <e> DMA Tx
649-
// <o1> Number <1=>1
650-
// <i> Selects DMA Number (only DMA1 can be used)
651-
// <o2> Channel <2=>2
652-
// <i> Selects DMA Channel (only Channel 2 can be used)
653-
// <o3> Priority <0=>Low <1=>Medium <2=>High <3=>Very high
654-
// <i> Sets DMA Channel priority
655-
// </e>
656-
#define RTE_USART3_TX_DMA 0
657-
#define RTE_USART3_TX_DMA_NUMBER 1
658-
#define RTE_USART3_TX_DMA_CHANNEL 2
659-
#define RTE_USART3_TX_DMA_PRIORITY 0
660-
661-
// </e>
662-
663-
664-
// <e> UART4 (Universal asynchronous receiver transmitter)
665-
// <i> Configuration settings for Driver_USART4 in component ::CMSIS Driver:USART
666-
#define RTE_UART4 0
667-
#define RTE_UART4_AF_REMAP AFIO_UNAVAILABLE_REMAP
668-
669-
// <o> UART4_TX Pin <0=>Not Used <1=>PC10
670-
#define RTE_UART4_TX_ID 0
671-
#if (RTE_UART4_TX_ID == 0)
672-
#define RTE_UART4_TX 0
673-
#elif (RTE_UART4_TX_ID == 1)
674-
#define RTE_UART4_TX 1
675-
#define RTE_UART4_TX_PORT GPIOC
676-
#define RTE_UART4_TX_BIT 10
677-
#else
678-
#error "Invalid UART4_TX Pin Configuration!"
679-
#endif
680-
681-
// <o> UART4_RX Pin <0=>Not Used <1=>PC11
682-
#define RTE_UART4_RX_ID 0
683-
#if (RTE_UART4_RX_ID == 0)
684-
#define RTE_UART4_RX 0
685-
#elif (RTE_UART4_RX_ID == 1)
686-
#define RTE_UART4_RX 1
687-
#define RTE_UART4_RX_PORT GPIOC
688-
#define RTE_UART4_RX_BIT 11
689-
#else
690-
#error "Invalid UART4_RX Pin Configuration!"
691-
#endif
692-
693-
694-
// <e> DMA Rx
695-
// <o1> Number <2=>2
696-
// <i> Selects DMA Number (only DMA2 can be used)
697-
// <o2> Channel <3=>3
698-
// <i> Selects DMA Channel (only Channel 3 can be used)
699-
// <o3> Priority <0=>Low <1=>Medium <2=>High <3=>Very high
700-
// <i> Sets DMA Channel priority
701-
// </e>
702-
#define RTE_UART4_RX_DMA 0
703-
#define RTE_UART4_RX_DMA_NUMBER 2
704-
#define RTE_UART4_RX_DMA_CHANNEL 3
705-
#define RTE_UART4_RX_DMA_PRIORITY 0
706-
707-
// <e> DMA Tx
708-
// <o1> Number <2=>2
709-
// <i> Selects DMA Number (only DMA2 can be used)
710-
// <o2> Channel <5=>5
711-
// <i> Selects DMA Channel (only Channel 5 can be used)
712-
// <o3> Priority <0=>Low <1=>Medium <2=>High <3=>Very high
713-
// <i> Sets DMA Channel priority
714-
// </e>
715-
#define RTE_UART4_TX_DMA 0
716-
#define RTE_UART4_TX_DMA_NUMBER 2
717-
#define RTE_UART4_TX_DMA_CHANNEL 5
718-
#define RTE_UART4_TX_DMA_PRIORITY 0
719-
720-
// </e>
721-
722-
723-
// <e> UART5 (Universal asynchronous receiver transmitter)
724-
// <i> Configuration settings for Driver_USART5 in component ::CMSIS Driver:USART
725-
#define RTE_UART5 0
726-
#define RTE_UART5_AF_REMAP AFIO_UNAVAILABLE_REMAP
727-
728-
// <o> UART5_TX Pin <0=>Not Used <1=>PC12
729-
#define RTE_UART5_TX_ID 0
730-
#if (RTE_UART5_TX_ID == 0)
731-
#define RTE_UART5_TX 0
732-
#elif (RTE_UART5_TX_ID == 1)
733-
#define RTE_UART5_TX 1
734-
#define RTE_UART5_TX_PORT GPIOC
735-
#define RTE_UART5_TX_BIT 12
736-
#else
737-
#error "Invalid UART5_TX Pin Configuration!"
738-
#endif
739-
740-
// <o> UART5_RX Pin <0=>Not Used <1=>PD2
741-
#define RTE_UART5_RX_ID 0
742-
#if (RTE_UART5_RX_ID == 0)
743-
#define RTE_UART5_RX 0
744-
#elif (RTE_UART5_RX_ID == 1)
745-
#define RTE_UART5_RX 1
746-
#define RTE_UART5_RX_PORT GPIOD
747-
#define RTE_UART5_RX_BIT 2
748-
#else
749-
#error "Invalid UART5_RX Pin Configuration!"
750-
#endif
751-
// </e>
752-
753407
#endif /* __RTE_DEVICE_H */

0 commit comments

Comments
 (0)