Skip to content

Commit faa7092

Browse files
committed
国民技术的N32L406和N32G457的pwm驱动设计
1 parent f1347e8 commit faa7092

File tree

9 files changed

+447
-114
lines changed

9 files changed

+447
-114
lines changed

bsp/n32/libraries/n32_drivers/SConscript

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ if GetDepend(['RT_USING_RTC']):
4747
if GetDepend(['RT_USING_WDT']):
4848
src += ['drv_wdt.c']
4949

50+
if GetDepend(['BSP_USING_PWM']):
51+
src += ['drv_pwm.c']
52+
5053
path = [cwd]
5154
path += [cwd + '/config']
5255

bsp/n32/n32g457qel-stb/.config

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ CONFIG_RT_USING_DAC=y
263263
# CONFIG_RT_USING_NULL is not set
264264
# CONFIG_RT_USING_ZERO is not set
265265
# CONFIG_RT_USING_RANDOM is not set
266-
# CONFIG_RT_USING_PWM is not set
266+
CONFIG_RT_USING_PWM=y
267267
# CONFIG_RT_USING_PULSE_ENCODER is not set
268268
# CONFIG_RT_USING_INPUT_CAPTURE is not set
269269
# CONFIG_RT_USING_MTD_NOR is not set
@@ -1486,6 +1486,31 @@ CONFIG_BSP_SPI3_REMAP_0=y
14861486
# CONFIG_BSP_USING_ADC is not set
14871487
# CONFIG_BSP_USING_DAC is not set
14881488
# CONFIG_BSP_USING_CAN is not set
1489+
CONFIG_BSP_USING_PWM=y
1490+
CONFIG_BSP_USING_TIM1_PWM=y
1491+
CONFIG_TIM1_REMAP_0=y
1492+
# CONFIG_TIM1_REMAP_3 is not set
1493+
CONFIG_BSP_USING_TIM1_PWM_CH1=y
1494+
# CONFIG_BSP_USING_TIM1_PWM_CH2 is not set
1495+
# CONFIG_BSP_USING_TIM1_PWM_CH3 is not set
1496+
CONFIG_BSP_USING_TIM1_PWM_CH4=y
1497+
CONFIG_BSP_USING_TIM2_PWM=y
1498+
CONFIG_TIM2_REMAP_0=y
1499+
# CONFIG_TIM2_REMAP_1 is not set
1500+
# CONFIG_TIM2_REMAP_2 is not set
1501+
# CONFIG_TIM2_REMAP_3 is not set
1502+
CONFIG_BSP_USING_TIM2_PWM_CH0=y
1503+
# CONFIG_BSP_USING_TIM2_PWM_CH1 is not set
1504+
# CONFIG_BSP_USING_TIM2_PWM_CH2 is not set
1505+
# CONFIG_BSP_USING_TIM2_PWM_CH3 is not set
1506+
CONFIG_BSP_USING_TIM3_PWM=y
1507+
CONFIG_TIM3_REMAP_0=y
1508+
# CONFIG_TIM3_REMAP_2 is not set
1509+
# CONFIG_TIM3_REMAP_3 is not set
1510+
CONFIG_BSP_USING_TIM3_PWM_CH0=y
1511+
# CONFIG_BSP_USING_TIM3_PWM_CH1 is not set
1512+
# CONFIG_BSP_USING_TIM3_PWM_CH2 is not set
1513+
# CONFIG_BSP_USING_TIM3_PWM_CH3 is not set
14891514
# end of On-chip Peripheral Drivers
14901515

14911516
#

bsp/n32/n32g457qel-stb/board/Kconfig

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,105 @@ menu "On-chip Peripheral Drivers"
316316
bool "using can2"
317317
default n
318318
endif
319+
320+
#-----------------------------PWM----------------------------------
321+
menuconfig BSP_USING_PWM
322+
bool "Enable N32G45x PWM"
323+
default n
324+
select RT_USING_PWM
325+
select RT_USING_HWTIMER
326+
if BSP_USING_PWM
327+
menuconfig BSP_USING_TIM1_PWM
328+
bool "Enable TIM1 output PWM"
329+
default n
330+
# --------------selcet remap-----------------
331+
if BSP_USING_TIM1_PWM
332+
choice
333+
prompt "Select Pin "
334+
default TIM1_REMAP_0
335+
config TIM1_REMAP_0
336+
bool "PA8 PA9 PA10 PA11 "
337+
config TIM1_REMAP_3
338+
bool "PE9 PE11 PE13 PE14"
339+
endchoice
340+
# -----------tim chanle enable-----------------
341+
config BSP_USING_TIM1_PWM_CH1
342+
bool "Enable TIM1 CH1"
343+
default n
344+
config BSP_USING_TIM1_PWM_CH2
345+
bool "Enable TIM1 CH2"
346+
default n
347+
config BSP_USING_TIM1_PWM_CH3
348+
bool "Enable TIM1 CH3"
349+
default n
350+
config BSP_USING_TIM1_PWM_CH4
351+
bool "Enable TIM1 CH4"
352+
default n
353+
endif
354+
355+
356+
menuconfig BSP_USING_TIM2_PWM
357+
bool "Enable TIM2 output PWM"
358+
default n
359+
if BSP_USING_TIM2_PWM
360+
choice
361+
prompt "Select Pin "
362+
default TIM2_REMAP_0
363+
config TIM2_REMAP_0
364+
bool "PA0 PA1 PA2 PA3 "
365+
config TIM2_REMAP_1
366+
bool "PA15 PB3 PA2 PA3 "
367+
config TIM2_REMAP_2
368+
bool "PA0 PA1 PB10 PB11 "
369+
config TIM2_REMAP_3
370+
bool "PA15 PB3 PB10 PB11"
371+
endchoice
372+
373+
config BSP_USING_TIM2_PWM_CH0
374+
bool "Enable TIM2 CH1"
375+
default n
376+
config BSP_USING_TIM2_PWM_CH1
377+
bool "Enable TIM2 CH2"
378+
default n
379+
config BSP_USING_TIM2_PWM_CH2
380+
bool "Enable TIM2 CH3"
381+
default n
382+
config BSP_USING_TIM2_PWM_CH3
383+
bool "Enable TIM2 CH4"
384+
default n
385+
endif
386+
387+
menuconfig BSP_USING_TIM3_PWM
388+
bool "Enable TIM3 output PWM"
389+
default n
390+
if BSP_USING_TIM3_PWM
391+
choice
392+
prompt "Select Pin "
393+
default TIM3_REMAP_0
394+
config TIM3_REMAP_0
395+
bool "PA6 PA7 PB0 PB1 "
396+
config TIM3_REMAP_2
397+
bool "PB4 PB5 PB0 PB1 "
398+
config TIM3_REMAP_3
399+
bool "PC6 PC7 PC8 PC9"
400+
endchoice
401+
402+
config BSP_USING_TIM3_PWM_CH0
403+
bool "Enable TIM3 CH1"
404+
default n
405+
config BSP_USING_TIM3_PWM_CH1
406+
bool "Enable TIM3 CH2"
407+
default n
408+
config BSP_USING_TIM3_PWM_CH2
409+
bool "Enable TIM3 CH3"
410+
default n
411+
config BSP_USING_TIM3_PWM_CH3
412+
bool "Enable TIM3 CH3"
413+
default n
414+
endif#BSP_USING_TIM3_PWM
415+
416+
endif#BSP_USING_PWM
417+
319418

320419
rsource "../../libraries/n32_drivers/Kconfig"
321420

bsp/n32/n32g457qel-stb/project.uvprojx

Lines changed: 66 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,9 @@
334334
<v6Rtti>0</v6Rtti>
335335
<VariousControls>
336336
<MiscControls />
337-
<Define>__CLK_TCK=RT_TICK_PER_SECOND, RT_USING_LIBC, RT_USING_ARMLIBC, USE_STDPERIPH_DRIVER, __RTTHREAD__, N32G45X, __STDC_LIMIT_MACROS</Define>
337+
<Define>RT_USING_ARMLIBC, USE_STDPERIPH_DRIVER, __STDC_LIMIT_MACROS, __CLK_TCK=RT_TICK_PER_SECOND, N32G45X, __RTTHREAD__, RT_USING_LIBC</Define>
338338
<Undefine />
339-
<IncludePath>..\..\..\components\drivers\include;..\..\..\components\net\utest;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\components\drivers\include;..\..\..\libcpu\arm\common;..\..\..\components\libc\posix\io\eventfd;..\..\..\components\drivers\include;..\libraries\N32G45x_Firmware_Library\CMSIS\core;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\poll;..\libraries\n32_drivers;..\..\..\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\..\..\components\drivers\smp_call;..\libraries\N32G45x_Firmware_Library\CMSIS\device;..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\inc;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;applications;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\..\..\components\libc\compilers\common\include;..\libraries\n32_drivers\config;..\..\..\components\libc\compilers\common\extension;..\..\..\components\drivers\spi;..\..\..\components\libc\posix\ipc;.;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\epoll;..\..\..\components\drivers\phy</IncludePath>
339+
<IncludePath>board;..\..\..\components\drivers\include;..\libraries\N32G45x_Firmware_Library\CMSIS\device;..\..\..\components\libc\posix\io\eventfd;applications;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\spi;..\..\..\libcpu\arm\common;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\epoll;..\libraries\n32_drivers\config;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\ipc;..\..\..\include;..\..\..\components\drivers\phy;..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\inc;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\libcpu\arm\cortex-m4;..\libraries\N32G45x_Firmware_Library\CMSIS\core;..\..\..\components\drivers\include;..\..\..\components\net\utest;..\libraries\n32_drivers;..\..\..\components\libc\compilers\common\extension;..\..\..\components\drivers\include;..\..\..\components\libc\compilers\common\include;.;..\..\..\components\finsh;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\components\drivers\smp_call;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include</IncludePath>
340340
</VariousControls>
341341
</Cads>
342342
<Aads>
@@ -750,6 +750,25 @@
750750
</FileOption>
751751
</File>
752752
</Files>
753+
<Files>
754+
<File>
755+
<FileName>rt_drv_pwm.c</FileName>
756+
<FileType>1</FileType>
757+
<FilePath>..\..\..\components\drivers\misc\rt_drv_pwm.c</FilePath>
758+
<FileOption>
759+
<FileArmAds>
760+
<Cads>
761+
<VariousControls>
762+
<MiscControls> </MiscControls>
763+
<Define>__RT_IPC_SOURCE__</Define>
764+
<Undefine> </Undefine>
765+
<IncludePath> </IncludePath>
766+
</VariousControls>
767+
</Cads>
768+
</FileArmAds>
769+
</FileOption>
770+
</File>
771+
</Files>
753772
<Files>
754773
<File>
755774
<FileName>dev_pin.c</FileName>
@@ -923,6 +942,13 @@
923942
<FilePath>..\libraries\n32_drivers\drv_hwtimer.c</FilePath>
924943
</File>
925944
</Files>
945+
<Files>
946+
<File>
947+
<FileName>drv_pwm.c</FileName>
948+
<FileType>1</FileType>
949+
<FilePath>..\libraries\n32_drivers\drv_pwm.c</FilePath>
950+
</File>
951+
</Files>
926952
<Files>
927953
<File>
928954
<FileName>drv_rtc.c</FileName>
@@ -956,30 +982,30 @@
956982
<GroupName>Finsh</GroupName>
957983
<Files>
958984
<File>
959-
<FileName>shell.c</FileName>
985+
<FileName>msh.c</FileName>
960986
<FileType>1</FileType>
961-
<FilePath>..\..\..\components\finsh\shell.c</FilePath>
987+
<FilePath>..\..\..\components\finsh\msh.c</FilePath>
962988
</File>
963989
</Files>
964990
<Files>
965991
<File>
966-
<FileName>msh.c</FileName>
992+
<FileName>shell.c</FileName>
967993
<FileType>1</FileType>
968-
<FilePath>..\..\..\components\finsh\msh.c</FilePath>
994+
<FilePath>..\..\..\components\finsh\shell.c</FilePath>
969995
</File>
970996
</Files>
971997
<Files>
972998
<File>
973-
<FileName>cmd.c</FileName>
999+
<FileName>msh_parse.c</FileName>
9741000
<FileType>1</FileType>
975-
<FilePath>..\..\..\components\finsh\cmd.c</FilePath>
1001+
<FilePath>..\..\..\components\finsh\msh_parse.c</FilePath>
9761002
</File>
9771003
</Files>
9781004
<Files>
9791005
<File>
980-
<FileName>msh_parse.c</FileName>
1006+
<FileName>cmd.c</FileName>
9811007
<FileType>1</FileType>
982-
<FilePath>..\..\..\components\finsh\msh_parse.c</FilePath>
1008+
<FilePath>..\..\..\components\finsh\cmd.c</FilePath>
9831009
</File>
9841010
</Files>
9851011
</Group>
@@ -1388,37 +1414,37 @@
13881414
<GroupName>Libraries</GroupName>
13891415
<Files>
13901416
<File>
1391-
<FileName>n32g45x_usart.c</FileName>
1417+
<FileName>n32g45x_spi.c</FileName>
13921418
<FileType>1</FileType>
1393-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_usart.c</FilePath>
1419+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_spi.c</FilePath>
13941420
</File>
13951421
</Files>
13961422
<Files>
13971423
<File>
1398-
<FileName>n32g45x_pwr.c</FileName>
1424+
<FileName>n32g45x_dac.c</FileName>
13991425
<FileType>1</FileType>
1400-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_pwr.c</FilePath>
1426+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_dac.c</FilePath>
14011427
</File>
14021428
</Files>
14031429
<Files>
14041430
<File>
1405-
<FileName>n32g45x_rtc.c</FileName>
1431+
<FileName>n32g45x_dma.c</FileName>
14061432
<FileType>1</FileType>
1407-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_rtc.c</FilePath>
1433+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_dma.c</FilePath>
14081434
</File>
14091435
</Files>
14101436
<Files>
14111437
<File>
1412-
<FileName>system_n32g45x.c</FileName>
1438+
<FileName>n32g45x_rcc.c</FileName>
14131439
<FileType>1</FileType>
1414-
<FilePath>..\libraries\N32G45x_Firmware_Library\CMSIS\device\system_n32g45x.c</FilePath>
1440+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_rcc.c</FilePath>
14151441
</File>
14161442
</Files>
14171443
<Files>
14181444
<File>
1419-
<FileName>n32g45x_rcc.c</FileName>
1445+
<FileName>n32g45x_rtc.c</FileName>
14201446
<FileType>1</FileType>
1421-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_rcc.c</FilePath>
1447+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_rtc.c</FilePath>
14221448
</File>
14231449
</Files>
14241450
<Files>
@@ -1430,72 +1456,72 @@
14301456
</Files>
14311457
<Files>
14321458
<File>
1433-
<FileName>n32g45x_spi.c</FileName>
1459+
<FileName>misc.c</FileName>
14341460
<FileType>1</FileType>
1435-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_spi.c</FilePath>
1461+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\misc.c</FilePath>
14361462
</File>
14371463
</Files>
14381464
<Files>
14391465
<File>
1440-
<FileName>n32g45x_dma.c</FileName>
1466+
<FileName>n32g45x_adc.c</FileName>
14411467
<FileType>1</FileType>
1442-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_dma.c</FilePath>
1468+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_adc.c</FilePath>
14431469
</File>
14441470
</Files>
14451471
<Files>
14461472
<File>
1447-
<FileName>n32g45x_dac.c</FileName>
1473+
<FileName>n32g45x_wwdg.c</FileName>
14481474
<FileType>1</FileType>
1449-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_dac.c</FilePath>
1475+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_wwdg.c</FilePath>
14501476
</File>
14511477
</Files>
14521478
<Files>
14531479
<File>
1454-
<FileName>n32g45x_iwdg.c</FileName>
1480+
<FileName>n32g45x_can.c</FileName>
14551481
<FileType>1</FileType>
1456-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_iwdg.c</FilePath>
1482+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_can.c</FilePath>
14571483
</File>
14581484
</Files>
14591485
<Files>
14601486
<File>
1461-
<FileName>misc.c</FileName>
1487+
<FileName>system_n32g45x.c</FileName>
14621488
<FileType>1</FileType>
1463-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\misc.c</FilePath>
1489+
<FilePath>..\libraries\N32G45x_Firmware_Library\CMSIS\device\system_n32g45x.c</FilePath>
14641490
</File>
14651491
</Files>
14661492
<Files>
14671493
<File>
1468-
<FileName>n32g45x_adc.c</FileName>
1494+
<FileName>n32g45x_iwdg.c</FileName>
14691495
<FileType>1</FileType>
1470-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_adc.c</FilePath>
1496+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_iwdg.c</FilePath>
14711497
</File>
14721498
</Files>
14731499
<Files>
14741500
<File>
1475-
<FileName>n32g45x_wwdg.c</FileName>
1501+
<FileName>n32g45x_usart.c</FileName>
14761502
<FileType>1</FileType>
1477-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_wwdg.c</FilePath>
1503+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_usart.c</FilePath>
14781504
</File>
14791505
</Files>
14801506
<Files>
14811507
<File>
1482-
<FileName>n32g45x_i2c.c</FileName>
1508+
<FileName>n32g45x_gpio.c</FileName>
14831509
<FileType>1</FileType>
1484-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_i2c.c</FilePath>
1510+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_gpio.c</FilePath>
14851511
</File>
14861512
</Files>
14871513
<Files>
14881514
<File>
1489-
<FileName>n32g45x_can.c</FileName>
1515+
<FileName>n32g45x_i2c.c</FileName>
14901516
<FileType>1</FileType>
1491-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_can.c</FilePath>
1517+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_i2c.c</FilePath>
14921518
</File>
14931519
</Files>
14941520
<Files>
14951521
<File>
1496-
<FileName>n32g45x_gpio.c</FileName>
1522+
<FileName>n32g45x_pwr.c</FileName>
14971523
<FileType>1</FileType>
1498-
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_gpio.c</FilePath>
1524+
<FilePath>..\libraries\N32G45x_Firmware_Library\n32g45x_std_periph_driver\src\n32g45x_pwr.c</FilePath>
14991525
</File>
15001526
</Files>
15011527
<Files>

0 commit comments

Comments
 (0)