openMV追踪代码.zip
大小:6.71MB
价格:10积分
下载量:0
评分:
5.0
上传者:小小_扫地僧
更新日期:2025-09-22

Openmv色块识别+STM32驱动云台色块追踪(免费)

资源文件列表(大概)

文件名
大小
Openmv色块识别+STM32驱动云台色块追踪/
-
Openmv色块识别+STM32驱动云台色块追踪/DebugConfig/
-
Openmv色块识别+STM32驱动云台色块追踪/DebugConfig/Target_1_STM32F103C8_1.0.0.dbgconf
6.79KB
Openmv色块识别+STM32驱动云台色块追踪/Hardware/
-
Openmv色块识别+STM32驱动云台色块追踪/Hardware/Key.c
828B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/Key.h
95B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/LED.c
1.04KB
Openmv色块识别+STM32驱动云台色块追踪/Hardware/LED.h
200B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/OLED.c
7.72KB
Openmv色块识别+STM32驱动云台色块追踪/Hardware/OLED.h
567B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/OLED_Font.h
8.94KB
Openmv色块识别+STM32驱动云台色块追踪/Hardware/PWM.c
2.28KB
Openmv色块识别+STM32驱动云台色块追踪/Hardware/PWM.h
290B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/Serial.c
3.31KB
Openmv色块识别+STM32驱动云台色块追踪/Hardware/Serial.h
466B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/Servo.c
777B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/Servo.h
228B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/been.c
658B
Openmv色块识别+STM32驱动云台色块追踪/Hardware/been.h
160B
Openmv色块识别+STM32驱动云台色块追踪/Library/
-
Openmv色块识别+STM32驱动云台色块追踪/Library/misc.c
6.88KB
Openmv色块识别+STM32驱动云台色块追踪/Library/misc.h
8.77KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_adc.c
46.09KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_adc.h
21.18KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_bkp.c
8.26KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_bkp.h
7.38KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_can.c
44.05KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_can.h
26.91KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_cec.c
11.38KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_cec.h
6.42KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_crc.c
3.27KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_crc.h
2.11KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_dac.c
18.64KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_dac.h
14.88KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_dbgmcu.c
5.03KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_dbgmcu.h
3.73KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_dma.c
28.91KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_dma.h
20.27KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_exti.c
6.8KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_exti.h
6.66KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_flash.c
61.08KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_flash.h
24.85KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_fsmc.c
34.65KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_fsmc.h
26.38KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_gpio.c
22.68KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_gpio.h
19.7KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_i2c.c
44.71KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_i2c.h
29.33KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_iwdg.c
4.8KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_iwdg.h
3.74KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_pwr.c
8.55KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_pwr.h
4.28KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_rcc.c
50.07KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_rcc.h
29.74KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_rtc.c
8.4KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_rtc.h
3.77KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_sdio.c
28.25KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_sdio.h
21.35KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_spi.c
29.52KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_spi.h
17.31KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_tim.c
106.6KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_tim.h
51.2KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_usart.c
37.41KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_usart.h
16.16KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_wwdg.c
5.6KB
Openmv色块识别+STM32驱动云台色块追踪/Library/stm32f10x_wwdg.h
2.9KB
Openmv色块识别+STM32驱动云台色块追踪/Listings/
-
Openmv色块识别+STM32驱动云台色块追踪/Listings/Project.map
162.85KB
Openmv色块识别+STM32驱动云台色块追踪/Listings/startup_stm32f10x_md.lst
40.47KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/
-
Openmv色块识别+STM32驱动云台色块追踪/Objects/Project.axf
378.86KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/Project.build_log.htm
3.91KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/Project.htm
60.42KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/Project.lnp
1.21KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/Project.sct
479B
Openmv色块识别+STM32驱动云台色块追踪/Objects/Project_Target 1.dep
58.73KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/been.crf
342.62KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/been.d
1.4KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/been.o
374.35KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/core_cm3.crf
3.85KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/core_cm3.d
106B
Openmv色块识别+STM32驱动云台色块追踪/Objects/core_cm3.o
10.87KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/delay.crf
338.11KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/delay.d
1.34KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/delay.o
371.35KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/key.crf
338.47KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/key.d
1.31KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/key.o
371.25KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/led.crf
338.57KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/led.d
1.28KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/led.o
376.56KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/main.crf
345.52KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/main.d
1.62KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/main.o
379.85KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/misc.crf
338.78KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/misc.d
1.34KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/misc.o
374.4KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/oled.crf
341.39KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/oled.d
1.35KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/oled.o
394.87KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/pwm.crf
338.95KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/pwm.d
1.28KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/pwm.o
375.14KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/serial.crf
344.5KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/serial.d
1.49KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/serial.o
385.09KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/servo.crf
338.84KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/servo.d
1.41KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/servo.o
377.94KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/startup_stm32f10x_md.d
64B
Openmv色块识别+STM32驱动云台色块追踪/Objects/startup_stm32f10x_md.o
5.87KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_adc.crf
345.79KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_adc.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_adc.o
420.36KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_bkp.crf
339.7KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_bkp.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_bkp.o
384.02KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_can.crf
347.36KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_can.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_can.o
405.91KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_cec.crf
340.24KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_cec.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_cec.o
386.58KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_crc.crf
338.35KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_crc.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_crc.o
375.4KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dac.crf
340.37KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dac.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dac.o
384.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dbgmcu.crf
338.14KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dbgmcu.d
1.73KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dbgmcu.o
371.56KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dma.crf
341.82KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dma.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_dma.o
384.13KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_exti.crf
339.33KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_exti.d
1.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_exti.o
378.4KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_flash.crf
345.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_flash.d
1.7KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_flash.o
409.48KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_fsmc.crf
344.17KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_fsmc.d
1.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_fsmc.o
395.32KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_gpio.crf
342.2KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_gpio.d
1.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_gpio.o
394.18KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_i2c.crf
344.57KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_i2c.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_i2c.o
414.64KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_it.crf
338.27KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_it.d
1.59KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_it.o
379.08KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_iwdg.crf
338.45KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_iwdg.d
1.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_iwdg.o
375.37KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_pwr.crf
339.61KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_pwr.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_pwr.o
379.98KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_rcc.crf
345.69KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_rcc.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_rcc.o
413.41KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_rtc.crf
339.61KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_rtc.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_rtc.o
386.14KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_sdio.crf
342.8KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_sdio.d
1.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_sdio.o
408.3KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_spi.crf
342.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_spi.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_spi.o
400.52KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_tim.crf
360.35KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_tim.d
1.63KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_tim.o
497.38KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_usart.crf
344.26KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_usart.d
1.7KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_usart.o
409.53KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_wwdg.crf
338.89KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_wwdg.d
1.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/stm32f10x_wwdg.o
378.23KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/system_stm32f10x.crf
339.93KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/system_stm32f10x.d
1.66KB
Openmv色块识别+STM32驱动云台色块追踪/Objects/system_stm32f10x.o
373.76KB
Openmv色块识别+STM32驱动云台色块追踪/Project.uvguix.Admin
90.56KB
Openmv色块识别+STM32驱动云台色块追踪/Project.uvguix.zxf
70.05KB
Openmv色块识别+STM32驱动云台色块追踪/Project.uvguix.姚璐
94.65KB
Openmv色块识别+STM32驱动云台色块追踪/Project.uvoptx
36.04KB
Openmv色块识别+STM32驱动云台色块追踪/Project.uvprojx
28.35KB
Openmv色块识别+STM32驱动云台色块追踪/Start/
-
Openmv色块识别+STM32驱动云台色块追踪/Start/core_cm3.c
16.87KB
Openmv色块识别+STM32驱动云台色块追踪/Start/core_cm3.h
83.71KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_cl.s
15.4KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_hd.s
15.14KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_hd_vl.s
15.32KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_ld.s
12.09KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_ld_vl.s
13.34KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_md.s
12.47KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_md_vl.s
13.74KB
Openmv色块识别+STM32驱动云台色块追踪/Start/startup_stm32f10x_xl.s
15.58KB
Openmv色块识别+STM32驱动云台色块追踪/Start/stm32f10x.h
619.08KB
Openmv色块识别+STM32驱动云台色块追踪/Start/system_stm32f10x.c
35.7KB
Openmv色块识别+STM32驱动云台色块追踪/Start/system_stm32f10x.h
2.04KB
Openmv色块识别+STM32驱动云台色块追踪/System/
-
Openmv色块识别+STM32驱动云台色块追踪/System/Delay.c
838B
Openmv色块识别+STM32驱动云台色块追踪/System/Delay.h
135B
Openmv色块识别+STM32驱动云台色块追踪/User/
-
Openmv色块识别+STM32驱动云台色块追踪/User/main.c
1.85KB
Openmv色块识别+STM32驱动云台色块追踪/User/stm32f10x_conf.h
3.18KB
Openmv色块识别+STM32驱动云台色块追踪/User/stm32f10x_it.c
4.3KB
Openmv色块识别+STM32驱动云台色块追踪/User/stm32f10x_it.h
2.04KB
Openmv色块识别+STM32驱动云台色块追踪/keilkill.bat
399B
Openmv色块识别+STM32驱动云台色块追踪/serial.c
3.5KB
Openmv色块识别+STM32驱动云台色块追踪/serial.h
468B
Openmv色块识别+STM32驱动云台色块追踪/区域识别(无pid).py
3.16KB
区域识别(无pid).py
3.13KB

资源内容介绍

"Openmv色块识别+STM32驱动云台色块追踪(免费)" 涉及到的核心技术是使用OpenMV摄像头进行色块识别,并通过STM32微控制器来驱动云台进行色块追踪。这个项目是基于开源硬件和软件的,旨在实现一种智能视觉导航系统,适合于机器人定位、物体跟踪等应用。【OpenMV色块识别】OpenMV是一款低成本、易于使用的嵌入式机器视觉模块,它内置了MicroPython环境,允许开发者使用Python语言编写机器视觉算法。在色块识别中,OpenMV可以捕获图像,通过颜色阈值、形状检测等算法对特定颜色的块进行定位。用户可能需要编写Python脚本来定义目标颜色范围,然后通过图像处理技术如灰度化、二值化和轮廓检测来提取色块。例如,`区域识别(无pid).py`可能就是用于实现这一功能的代码,尽管没有PID控制,但依然能实现基本的色块识别和位置计算。【STM32驱动云台】STM32是意法半导体公司推出的基于ARM Cortex-M内核的微控制器系列,广泛应用于各种嵌入式系统。在这个项目中,STM32接收来自OpenMV的色块位置信息,然后通过控制电机或舵机来调整云台的角度,使得摄像头始终保持对色块的追踪。这通常涉及到串行通信协议如I2C、UART或SPI来传递数据,以及PID(比例-积分-微分)控制算法来实现精确的云台角度调整。虽然描述中提到"区域识别(无pid).py"未使用PID,但在实际的云台追踪中,PID控制通常会提供更稳定、精确的追踪效果。【集成与应用】将OpenMV的色块识别与STM32的云台驱动相结合,可以创建一个自主寻迹的小型机器人。这样的系统可以应用于教育、娱乐甚至科研领域,比如自动跟随色标的无人机、机器人足球比赛中的目标识别等。开发者需要具备一定的Python编程基础,了解OpenMV库的使用,同时也要熟悉STM32的硬件接口和嵌入式软件开发。这个项目涉及的知识点包括:1. 机器视觉原理与OpenMV摄像头的使用2. Python编程,特别是图像处理和颜色识别3. STM32微控制器的硬件接口与嵌入式编程4. 串行通信协议如UART、SPI或I2C5. 云台驱动和电机控制6. 基于颜色的目标追踪算法7. 无PID的简易追踪策略对于想要深入学习这些技术的人来说,这个项目提供了一个很好的实践平台,可以结合提供的代码进行学习和改进。
/** ****************************************************************************** * @file stm32f10x_tim.c * @author MCD Application Team * @version V3.5.0 * @date 11-March-2011 * @brief This file provides all the TIM firmware functions. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2> ****************************************************************************** */#include "stm32f10x_tim.h"#include "stm32f10x_rcc.h"/** @addtogroup STM32F10x_StdPeriph_Driver * @{ *//** @defgroup TIM * @brief TIM driver modules * @{ *//** @defgroup TIM_Private_TypesDefinitions * @{ *//** * @} *//** @defgroup TIM_Private_Defines * @{ */#define SMCR_ETR_Mask ((uint16_t)0x00FF) #define CCMR_Offset ((uint16_t)0x0018)#define CCER_CCE_Set ((uint16_t)0x0001) #define CCER_CCNE_Set ((uint16_t)0x0004) /** * @} *//** @defgroup TIM_Private_Macros * @{ *//** * @} *//** @defgroup TIM_Private_Variables * @{ *//** * @} *//** @defgroup TIM_Private_FunctionPrototypes * @{ */static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter);static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter);static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter);static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, uint16_t TIM_ICFilter);/** * @} *//** @defgroup TIM_Private_Macros * @{ *//** * @} *//** @defgroup TIM_Private_Variables * @{ *//** * @} *//** @defgroup TIM_Private_FunctionPrototypes * @{ *//** * @} *//** @defgroup TIM_Private_Functions * @{ *//** * @brief Deinitializes the TIMx peripheral registers to their default reset values. * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. * @retval None */void TIM_DeInit(TIM_TypeDef* TIMx){ assert_param(IS_TIM_ALL_PERIPH(TIMx)); if (TIMx == TIM1) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM1, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM1, DISABLE&#41;; } else if (TIMx == TIM2) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM2, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM2, DISABLE&#41;; } else if (TIMx == TIM3) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM3, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM3, DISABLE&#41;; } else if (TIMx == TIM4) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM4, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM4, DISABLE&#41;; } else if (TIMx == TIM5) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM5, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM5, DISABLE&#41;; } else if (TIMx == TIM6) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM6, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM6, DISABLE&#41;; } else if (TIMx == TIM7) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM7, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM7, DISABLE&#41;; } else if (TIMx == TIM8) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM8, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM8, DISABLE&#41;; } else if (TIMx == TIM9) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM9, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM9, DISABLE&#41;; } else if (TIMx == TIM10) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM10, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM10, DISABLE&#41;; } else if (TIMx == TIM11) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM11, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM11, DISABLE&#41;; } else if (TIMx == TIM12) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM12, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM12, DISABLE&#41;; } else if (TIMx == TIM13) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM13, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM13, DISABLE&#41;; } else if (TIMx == TIM14) { RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM14, ENABLE&#41;; RCC_APB1PeriphResetCmd&#40;RCC_APB1Periph_TIM14, DISABLE&#41;; } else if (TIMx == TIM15) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM15, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM15, DISABLE&#41;; } else if (TIMx == TIM16) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM16, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM16, DISABLE&#41;; } else { if (TIMx == TIM17) { RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM17, ENABLE&#41;; RCC_APB2PeriphResetCmd&#40;RCC_APB2Periph_TIM17, DISABLE&#41;; } }}/** * @brief Initializes the TIMx Time Base Unit peripheral according to * the specified parameters in the TIM_TimeBaseInitStruct. * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. * @param TIM_TimeBaseInitStruct: pointer to a TIM_TimeBaseInitTypeDef * structure that contains the configuration information for the * specified TIM peripheral. * @retval None */void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct){ uint16_t tmpcr1 = 0; assert_param(IS_TIM_ALL_PERIPH(TIMx)); assert_param(IS_TIM_COUNTER_MODE(TIM_TimeBaseInitStruct->TIM_CounterMode)); assert_param(IS_TIM_CKD_DIV(TIM_TimeBaseInitStruct->TIM_ClockDivision)); tmpcr1 = TIMx->CR1; if((TIMx == TIM1) || (TIMx == TIM8)|| (TIMx == TIM2) || (TIMx == TIM3)|| (TIMx == TIM4) || (TIMx == TIM5)) { tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_CR1_DIR | TIM_CR1_CMS))); tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_CounterMode; } if((TIMx != TIM6) && (TIMx != TIM7)) { tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CR1_CKD)); tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision; } TIMx->CR1 = tmpcr1; TIMx->ARR = TIM_TimeBaseInitStruct->TIM_Period ; TIMx->PSC = TIM_TimeBaseInitStruct->TIM_Prescaler; if ((TIMx == TIM1) || (TIMx == TIM8)|| (TIMx == TIM15)|| (TIMx == TIM16) || (TIMx == TIM17)) { TIMx->RCR = TIM_TimeBaseInitStruct->TIM_RepetitionCounter; } TIMx->EGR = TIM_PSCReloadMode_Immediate; }/** * @brief Initializes the TIMx Channel1 according to the specified * parameters in the TIM_OCInitStruct. * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. * @param TIM_OCInitStru

用户评论 (0)

发表评论

captcha