77范文网 - 专业文章范例文档资料分享平台

嵌入式课程设计报告文档(2)

来源:网络收集 时间:2019-05-18 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

4.1主程序流程图:

4. 2代码实现,包括必要的注释

/按键初始化函数

5. //PA0.15和PC5 设置成输入 6. void KEY_Init(void) 7. {

6

8. 9.

RCC->APB2ENR|=1<<2; //使能PORTA时钟 RCC->APB2ENR|=1<<4; //使能PORTC时钟

//关闭JTAG,开启SWD

10. JTAG_Set(SWD_ENABLE); 12. GPIOA->CRL|=0X00000008;

11. GPIOA->CRL&=0XFFFFFFF0; //PA0设置成输入 13. GPIOA->CRH&=0X0FFFFFFF; //PA15设置成输入 14. GPIOA->CRH|=0X80000000; 15. GPIOA->ODR|=1<<15;

//PA15上拉,PA0默认下拉

16. GPIOC->CRL&=0XFF0FFFFF; //PC5设置成输入 17. GPIOC->CRL|=0X00800000; 18. GPIOC->ODR|=1<<5; 19. } //按键处理函数

20. u8 KEY_Scan(u8 mode) 21. {

22. static u8 key_up=1;//按键按松开标志 23. if(mode)key_up=1; //支持连按 25. { 26. 27. 28. 29. 30.

delay_ms(10);//去抖动 key_up=0;

if(KEY0==0)return KEY0_PRES; else if(KEY1==0)return KEY1_PRES; else if(WK_UP==1)return WKUP_PRES;

24. if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))

//PC5上拉

31. }else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1; 32. return 0;// 无按键按下 33. }

//外部中断定义及初始化程序 //外部中断0服务程序

34. void EXTI0_IRQHandler(void) 35. { int speed;

36. delay_ms(10); //消抖 37. if(WK_UP==1) //WK_UP按键 38. { 39. 40. 41. 42. 43. 44. } 46. }

//外部中断9~5服务程序

47. void EXTI9_5_IRQHandler(void)

7

//LED=!LED; if(speed==100000) else

{speed=100000;LED=1;}

{LED=0;speed=20;}

45. EXTI->PR=1<<0; //清除LINE0上的中断标志位

48. {

//按键0

49. delay_ms(10); //消抖 50. if(KEY0==0) 51. {LED=0;speed=3;}

52. EXTI->PR=1<<5; //清除LINE5上的中断标志位 53. }

54. //外部中断15~10服务程序 55. void EXTI15_10_IRQHandler(void) 56. {

//按键1

57. delay_ms(10); //消抖 58. if(KEY1==0) 59. {LED=0;speed=7;}

60. EXTI->PR=1<<15; //清除LINE15上的中断标志位 61. }

62. //外部中断初始化程序

63. //初始化PA0,PC5,PA15为中断输入. 64. void EXTI_Init(void) 65. {

66. KEY_Init();

67. Ex_NVIC_Config(GPIO_A,0,RTIR); 68. Ex_NVIC_Config(GPIO_C,5,FTIR);

69. Ex_NVIC_Config(GPIO_A,15,FTIR); 70. MY_NVIC_Init(2,2,EXTI0_IRQn,2); 71. MY_NVIC_Init(2,1,EXTI9_5_IRQn,2); 72. MY_NVIC_Init(2,0,EXTI15_10_IRQn,2); 73. }

//步进点击初始化函数

74. void MOTOR_Init(void) 75. {

76. RCC->APB2ENR|=1<<2; //使能PORTA时钟 77. RCC->APB2ENR|=1<<5; //使能PORTD时钟 78. GPIOA->CRL&=0X0000FFFF;

79. GPIOA->CRL|=0X11110000;//PA8 推挽输出 PA2 LED推挽输出 80. GPIOA->CRH&=0XFFFFFFF0; 81. GPIOA->CRH|=0X00000001; 82. GPIOA->ODR|=1<<8; 84. GPIOA->ODR|=1<<5;

85. GPIOA->ODR|=1<<6; //PA8 输出高 86. GPIOA->ODR|=1<<7;

87. GPIOD->CRL&=0XFFFFF0FF; 88. GPIOD->CRL|=0X00000300;//PD.2 89. GPIOD->ODR|=1<<2; //PD.2 90. }

8

83. GPIOA->ODR|=1<<4; //PA8 输出高

//上升沿触发 //下降沿触发 //下降沿触发

//步进点击停止函数

91. void MOTOR_Stop(void) 92. {

93. MOTOR1=0; 94. MOTOR2=0; 95. MOTOR3=0; 96. MOTOR4=0; 97. int main(void) 98. {

99. Stm32_Clock_Init(9);//系统时钟设置 100. delay_init(72); //延时初始化 101. uart_init(72,9600); //串口初始化 102. MOTOR_Init(); 103. EXTI_Init(); 104. speed=100000; 105. MOTOR_Stop(); 106. while(1) 107. { 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 122. 124. 125. 126. 127. 128. 129. } 130. }

printf(\//delay_ms(1000); {delay_ms(100);}

MOTOR1=1;MOTOR2=0;MOTOR3=0;MOTOR4=0; delay_ms(speed);

MOTOR1=1;MOTOR2=1;MOTOR3=0;MOTOR4=0; delay_ms(speed);

MOTOR1=0;MOTOR2=1;MOTOR3=0;MOTOR4=0; delay_ms(speed);

MOTOR1=0;MOTOR2=1;MOTOR3=1;MOTOR4=0; LED8=!LED8; delay_ms(speed); delay_ms(speed); delay_ms(speed);

MOTOR1=0;MOTOR2=0;MOTOR3=0;MOTOR4=1; delay_ms(speed);

MOTOR1=1;MOTOR2=0;MOTOR3=0;MOTOR4=1; delay_ms(speed);

while(speed==100000)

//motor stop

//初始化motor //外部中断初始化

121. MOTOR1=0;MOTOR2=0;MOTOR3=1;MOTOR4=0; 123. MOTOR1=0;MOTOR2=0;MOTOR3=1;MOTOR4=1;

五、 实验测试、结果分析

9

实验结果如图:

结果分析:

实验结果基本完成本课题实验要求,实现的步进电机的的运转。但由于时间关系未能加入ADC模块,实现电机的转向等的控制。

六、 总结、心得体会

通过此次课程设计,使得我对ARMSTM32的基本知识有了深一步的认识,同时增

加了嵌入式开发的经验。在课设过程中遇到了一些小麻烦,就是调试的过程中,由于编程基础不是很深厚,检测不出问题,实现不了要求,后来在同学的帮忙下,改了ministm32的io端口,才成功实现的;这也让我懂得,做技术的一定要多实践,光有理论是不行的。

七、 主要参考文献

《嵌入式系统原理、设计及开发》清华大学出版社

《ARM嵌入式系统基础教程》 北京航空航天大学出版社 STM32不完全手册V2.3 周立功ARM培训精华(全套)

谭浩强C程序设计清华大学出版社

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库嵌入式课程设计报告文档(2)在线全文阅读。

嵌入式课程设计报告文档(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/630815.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: