stm32实训总结_第1页
stm32实训总结_第2页
stm32实训总结_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实践形式: 校内实践基地实践 校外实践基地导师联系校外实践 自行联系校外实践 其他_起止日期:2015.12.14-2015.12.25实践总结(要求写明实践地点、实践时间、指导教师、实践目的、实践内容和完成情况,字数及其它具体要求由各学院根据学科情况自行制定。)实践地点实践目的1. 利用所学过的基础知识,通过本次电子实习培养独立解决实际问题的能力。2. 巩固本课程所学习的理论知识和实验技能。3. 了解循迹小车构成的设计方法。4. 掌握常用电子电路的一般设计方法,提高设计能力和实验、动手能力,为今后从事电子电路的设计、研制电子产品打下基础。5. 培养团队的协作和沟通能力。实践内容:一、 智能小

2、车配置本次实训中所用到的智能小车如图 1 所示,其主要配置包括:图 1 智能小车1、 小车底盘小车底盘是机器人最重要的载体,相当于人体的驱干,zk-4wd 小车平台采用差速转弯非常灵活可以实现原地打转。小车平台大小刚好可以承载一些如驱动器控制器、控制器、电池、传感器等。图 2 小车底盘2、驱动器小车直流电机工作电流一般是 200-400ma,有些更大,如果一个小车是二个轮子,那么总的电流在 400-800ma 左右,这些电机轮子都是要接受单片机指令执行相应的动作,而市面有的单片机 io 口一般只能提供 5ma 到 10ma 的电流,直接驱动不了电机,所以需要一个驱动模块,放大电流。驱动采用专业

3、的 l298n 驱动芯片。图 3 l298n 驱动芯片3、控制器图 4 为控制器 stm32 核心板,stm32 平台采用核心板+外围板方式。核心板主要包括stm32f103vet6 最小系统、按键、led 灯、tf 卡、串口和 jtag 电路。可以完成stm32 内部资源的大部分开发应用。外围板包括数码管电路、存储器电路、红外、光敏电阻、温度传感器、uln2003 电路、步进电机、蜂鸣器、ds1302 时钟电路和can 总线等电路设计,基本包括了 stm32 的所有资源、同时又对 iic、单总线、spi总线、can 总线等协议进行了硬件设计。图 4 控制器 stm32 核心板4、小车所需的能

4、源一般采用低内阻的充电电池套装。图 5 小车所需的充电电池5、寻迹传感器用来识别黑白线,小车沿着黑白线行走,就需要寻迹传感器。原理:寻迹传感器通常采用红外的方式,红外管发射出来的红外光通过地面(白色)反射回来,在接收管里收到信号,一旦碰到黑线,那么红外光都被吸收,接收管没有接收到信号,从而得知传感器是否压线,从而调整小车运行方向。图 6 寻迹传感器二、 硬件接口电路设计图 7 硬件接线图三、 软件编程实现在空的 demo 中打开软件编程界面编写程序,如图 8 所示。图 8 软件编程界面小车寻迹控制程序包括主程序和中断程序如下:主程序:#include stm32f10 x.hvoid gpio

5、_config()gpio_inittypedef gpio_initstruct;gpio_initstruct.gpio_pin=gpio_pin_all;gpio_initstruct.gpio_speed=gpio_speed_50mhz;gpio_initstruct.gpio_mode=gpio_mode_af_pp;gpio_init(gpiob, &gpio_initstruct);void hw_config()gpio_inittypedef gpio_initstruct;gpio_initstruct.gpio_pin=gpio_pin_0|gpio_pin_1

6、|gpio_pin_2|gpio_pin_3;gpio_initstruct.gpio_speed=gpio_speed_50mhz;gpio_initstruct.gpio_mode=gpio_mode_in_floating;gpio_init(gpioc, &gpio_initstruct);gpio_extilineconfig(gpio_portsourcegpioc, gpio_pinsource0);gpio_extilineconfig(gpio_portsourcegpioc, gpio_pinsource1);gpio_extilineconfig(gpio_por

7、tsourcegpioc, gpio_pinsource2);gpio_extilineconfig(gpio_portsourcegpioc, gpio_pinsource3);void car_config()gpio_inittypedef gpio_initstruct;gpio_initstruct.gpio_pin=gpio_pin_all;gpio_initstruct.gpio_speed=gpio_speed_50mhz;gpio_initstruct.gpio_mode=gpio_mode_out_pp;gpio_init(gpiod, &gpio_initstru

8、ct);void exit_config()exti_inittypedef exti_initstruct;exti_initstruct.exti_line=exti_line0;exti_initstruct.exti_mode=exti_mode_interrupt;exti_initstruct.exti_trigger=exti_trigger_rising;exti_initstruct.exti_linecmd=enable;exti_init(&exti_initstruct);exti_initstruct.exti_line=exti_line1;exti_ini

9、tstruct.exti_mode=exti_mode_interrupt;exti_initstruct.exti_trigger=exti_trigger_rising;exti_initstruct.exti_linecmd=enable;exti_init(&exti_initstruct);exti_initstruct.exti_line=exti_line2;exti_initstruct.exti_mode=exti_mode_interrupt;exti_initstruct.exti_trigger=exti_trigger_rising;exti_initstru

10、ct.exti_linecmd=enable;exti_init(&exti_initstruct);exti_initstruct.exti_line=exti_line3;exti_initstruct.exti_mode=exti_mode_interrupt;exti_initstruct.exti_trigger=exti_trigger_rising;exti_initstruct.exti_linecmd=enable;exti_init(&exti_initstruct);void nvic_config()nvic_inittypedef nvic_inits

11、truct;nvic_initstruct.nvic_irqchannel=exti0_irqn;nvic_initstruct.nvic_irqchannelpreemptionpriority=0;nvic_initstruct.nvic_irqchannelsubpriority=0;nvic_initstruct.nvic_irqchannelcmd=enable;nvic_init(&nvic_initstruct);nvic_initstruct.nvic_irqchannel=exti1_irqn;nvic_initstruct.nvic_irqchannelpreemp

12、tionpriority=0;nvic_initstruct.nvic_irqchannelsubpriority=0;nvic_initstruct.nvic_irqchannelcmd=enable;nvic_init(&nvic_initstruct);nvic_initstruct.nvic_irqchannel=exti2_irqn;nvic_initstruct.nvic_irqchannelpreemptionpriority=0;nvic_initstruct.nvic_irqchannelsubpriority=0;nvic_initstruct.nvic_irqch

13、annelcmd=enable;nvic_init(&nvic_initstruct);nvic_initstruct.nvic_irqchannel=exti3_irqn;nvic_initstruct.nvic_irqchannelpreemptionpriority=0;nvic_initstruct.nvic_irqchannelsubpriority=0;nvic_initstruct.nvic_irqchannelcmd=enable;nvic_init(&nvic_initstruct);void tim_config()tim_timebaseinittyped

14、ef tim_timebaseinitstruct;tim_ocinittypedef tim_ocinitstruct;tim_timebaseinitstruct.tim_prescaler=360-1;tim_timebaseinitstruct.tim_countermode=tim_countermode_up;tim_timebaseinitstruct.tim_period=200-1;tim_timebaseinit(tim4,&tim_timebaseinitstruct);tim_ocinitstruct.tim_ocmode=tim_ocmode_pwm1;/ys

15、tim_ocinitstruct.tim_outputstate=tim_outputstate_enable;tim_ocinitstruct.tim_pulse=80;tim_ocinitstruct.tim_ocpolarity=tim_ocpolarity_high; /有效值赋值tim_oc1init(tim4,&tim_ocinitstruct);tim_ocinitstruct.tim_ocmode=tim_ocmode_pwm1;/yxtim_ocinitstruct.tim_outputstate=tim_outputstate_enable;tim_ocinitst

16、ruct.tim_pulse=85;tim_ocinitstruct.tim_ocpolarity=tim_ocpolarity_high;tim_oc2init(tim4,&tim_ocinitstruct);tim_ocinitstruct.tim_ocmode=tim_ocmode_pwm1;/zstim_ocinitstruct.tim_outputstate=tim_outputstate_enable;tim_ocinitstruct.tim_pulse=80;tim_ocinitstruct.tim_ocpolarity=tim_ocpolarity_high; /有效值

17、赋值tim_oc3init(tim4,&tim_ocinitstruct);tim_ocinitstruct.tim_ocmode=tim_ocmode_pwm1;/zxtim_ocinitstruct.tim_outputstate=tim_outputstate_enable;tim_ocinitstruct.tim_pulse=85;tim_ocinitstruct.tim_ocpolarity=tim_ocpolarity_high; /有效值赋值tim_oc4init(tim4,&tim_ocinitstruct);tim_oc1preloadconfig(tim4,

18、tim_ocpreload_enable);tim_oc2preloadconfig(tim4,tim_ocpreload_enable);tim_oc3preloadconfig(tim4,tim_ocpreload_enable);tim_oc4preloadconfig(tim4,tim_ocpreload_enable);tim_arrpreloadconfig(tim4,enable);tim_cmd(tim4,enable);int main()rcc_apb2periphclockcmd(rcc_apb2periph_afio|rcc_apb2periph_gpioc|rcc_a

19、pb2periph_gpiob|rcc_apb2periph_gpiod,enable);rcc_apb1periphclockcmd(rcc_apb1periph_tim4,enable);gpio_config();hw_config();tim_config();car_config();exit_config();nvic_config();while(1)gpio_write(gpiod,0 x0066);中断程序:void delay(uint16_t z)uint16_t i = 0;while(z-)for(i=0;i1;i+);void exti0_irqhandler(vo

20、id)exti_clearitpendingbit(exti_line0);gpio_write(gpiod,0 x0069);if (gpio_readinputdatabit(gpioc, gpio_pin_0)=set)while (gpio_readinputdatabit(gpioc, gpio_pin_0)=set)void exti1_irqhandler(void)exti_clearitpendingbit(exti_line1);gpio_write(gpiod,0 x0069);if (gpio_readinputdatabit(gpioc, gpio_pin_1)=se

21、t)while (gpio_readinputdatabit(gpioc, gpio_pin_1)=set)void exti2_irqhandler(void)exti_clearitpendingbit(exti_line2);gpio_write(gpiod,0 x0096);if (gpio_readinputdatabit(gpioc, gpio_pin_2)=set)while (gpio_readinputdatabit(gpioc, gpio_pin_2)=set)void exti3_irqhandler(void)exti_clearitpendingbit(exti_line3);gpio_write(gpiod,0 x0096);if (gpio_readinputdatabit(gpioc, gpio_pin_3)=set)while (gpio_readinputdatabit(gpioc, gpio_pin_3)=set)四

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论