[DemoCode下载] SmartM-M451入门代码

[复制链接]
945|3
 楼主| huahuagg 发表于 2018-10-28 21:26 | 显示全部楼层 |阅读模式
入门代码.rar (3.32 MB, 下载次数: 26)


 楼主| huahuagg 发表于 2018-10-28 21:28 | 显示全部楼层
  1. /************************* Copyright (c) 2014 SmartMcu Team *****************************
  2. *项目名称:SysTick中断-Led灯闪烁
  3. *开发平台:SmartM-M4系列开发板
  4. ****************************************************************************************/
  5. #include "SmartM_M4.h"

  6. /*-------------------------------------------------------*/
  7. /*                     全局变量                          */
  8. /*-------------------------------------------------------*/
  9. VOLATILE BOOL g_vbSysTickEvent = FALSE;


  10. /*-------------------------------------------------------*/
  11. /*                        函数                           */
  12. /*-------------------------------------------------------*/


  13. /****************************************
  14. *函数名称:SysTickInitWithInterrput
  15. *输    入:ms -毫秒
  16. *输    出:无
  17. *功    能:SysTick初始化并使能中断
  18. ******************************************/
  19. VOID SysTickInitWithInterrput(UINT32 ms)
  20. {
  21.                 /* 1.SysTick的自动重载值的设置 */
  22.     SysTick->LOAD = ms * 12 * 1000;
  23.        
  24.                 /* 2.为NVIC SysTick中断设置优先级 */        
  25.                 NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);

  26.     /* 3.清零计数器*/
  27.     SysTick->VAL  = (0x00);
  28.        
  29.                 /*4.SysTick的时钟源选择为外部晶振、使能计数器、使能SysTick中断*/
  30.     SysTick->CTRL =  SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_TICKINT_Msk   ;                
  31. }


  32. /****************************************
  33. *函数名称:main
  34. *输    入:无
  35. *输    出:无
  36. *功    能:函数主体
  37. ******************************************/
  38. int32_t main(void)
  39. {
  40.                 BOOL b = FALSE;

  41.                 PROTECT_REG
  42.                 (
  43.                         /* 系统时钟初始化 */
  44.                         SYS_Init(PLL_CLOCK);
  45.     )

  46.                 /* PB8引脚初始化为输出模式 */
  47.                 GPIO_SetMode(PB,BIT8,GPIO_MODE_OUTPUT);
  48.        
  49.                 SysTickInitWithInterrput(250);
  50.        
  51.     while(1)
  52.     {
  53.                                 if(g_vbSysTickEvent)
  54.                                 {
  55.                                                 g_vbSysTickEvent = FALSE;
  56.                                        
  57.                                                 PB8 = b;
  58.                                        
  59.                                                 b = !b;
  60.                                        
  61.                                 }               
  62.                 }
  63. }


  64. /*-------------------------------------------------------*/
  65. /*                      中断函数                         */
  66. /*-------------------------------------------------------*/
  67. VOID SysTick_Handler(VOID)
  68. {
  69.                 g_vbSysTickEvent = TRUE;
  70. }






21mengnan 发表于 2018-10-28 21:51 | 显示全部楼层
希望更好用
734774645 发表于 2018-10-29 07:53 | 显示全部楼层
被优化过的库。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

160

主题

1437

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部