STM32之系统中断处理.docx_第1页
STM32之系统中断处理.docx_第2页
STM32之系统中断处理.docx_第3页
STM32之系统中断处理.docx_第4页
STM32之系统中断处理.docx_第5页
全文预览已结束

下载本文档

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

文档简介

STM32之系统中断处理 (2012-08-01 21:00) 标签: STM32 分类: STM32 点击(此处)折叠或打开1. /* 2. * Function Name : SysTickHandler 3. * Description : This function handles SysTick Handler. 4. * Input : None 5. * Output : None 6. * Return : None 7. */ 8. void SysTickHandler(void) 9. 10. _SVC(); 11.12. /* Toggle PC.04 pin */ LED4 13. GPIO_WriteBit(GPIOC, GPIO_Pin_4, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_4); 14. 15. /* 16. * Function Name : SVCHandler 17. * Description : This function handles SVCall exception. 18. * Input : None 19. * Output : None 20. * Return : None 21. */ 22. void SVCHandler(void) 23. 24. /* Set the PSV system handler pending bit */ 25. NVIC_SetSystemHandlerPendingBit(SystemHandler_PSV); 26.27. /* Toggle PC.05 pin */ LED3 28. GPIO_WriteBit(GPIOC, GPIO_Pin_5, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_5); 29. 30. /* 31. * Function Name : PendSVC 32. * Description : This function handles PendSVC exception. 33. * Input : None 34. * Output : None 35. * Return : None 36. */ 37. void PendSVC(void) 38. 39. /* Set the NMI system handler pending bit */ 40. NVIC_SetSystemHandlerPendingBit(SystemHandler_NMI); 41.42. /* Toggle PC.06 pin */ LED2 43. GPIO_WriteBit(GPIOC, GPIO_Pin_6, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_6); 44. 45. /* 46. * Function Name : NMIException 47. * Description : This function handles NMI exception. 48. * Input : None 49. * Output : None 50. * Return : None 51. */ 52. void NMIException(void) 53. 54. /* Toggle PC.07 pin */ LED1 55. GPIO_WriteBit(GPIOC, GPIO_Pin_7, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_7); 56. 本例展示了如何运用NVIC和系统Handler(system handler):各个system handlers拥有如下的强制优先级(preemption priority): - NMI preemption priority -2 固定优先级 - PSV preemption priority 0 可设置 - SVCall preemption priority 1 可设置 - SysTick preemption priority 2 可设置首先把Systick定时器设定为每当其计数器为零,这里是1s产生一个Systick中断。点击(此处)折叠或打开1. /* SysTick interrupt each 1 Hz with Counter clock equal to 72MHz/8 = 9MHz */ 2. SysTick_SetReload(9000000); 3.4. /* Enable the SysTick Interrupt */ 5. SysTick_ITConfig(ENABLE); 6.7. /* Enable the SysTick Counter */ 8. SysTick_CounterCmd(SysTick_Counter_Enable);在Systick handler routine中,设置与PC.04相连的LED4以1秒为周期闪耀。随后执行_SVC(System Service Call)指令。这个指令在cortexm3_macro.h中执行_SVC()会激活SVCall handler来打断当前的指令流。在SVCall handler routine中,设置与PC.05相连的LED3闪耀,同时设置PSV handler的pending比特。由于PSV(Pendable request for system service)的优先级更高,因此他又会打断SVCall handler。在PSV handler routine中,设置与

温馨提示

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

评论

0/150

提交评论