STM8L051单片机开发问题记录

1.enableInterrupts();   打开中断函数

  这个函数放在串口中,我先打开串口然后调用这个函数,我再设置gpio外部中断功能,然后发现中断异常。最后将enableInterrupts();  函数放在了最后,解决问题。

2.关闭halt模式下看门狗复位功能

(1)通过代码功能实现

  FLASH_DeInit();                       //恢复FLASH相关寄存器到默认值 
  FLASH_Unlock(FLASH_MemType_Data);              

  FLASH_ProgramOptionByte(0x4808, 0x02);   //选项字可以再手册中查询功能。

(2)IAR 工具下,关闭halt模式下看门狗复位功能

ST-LINK  --- Option Bytes ---设置相关功能

STM8L051单片机开发问题记录_第1张图片

3.无法debug加断点

在网上看到很多说明,最重要的一点是:要将代码设置成debug模式。按照下面3个截图中设置就基本没问题了

STM8L051单片机开发问题记录_第2张图片

STM8L051单片机开发问题记录_第3张图片

STM8L051单片机开发问题记录_第4张图片

 

4.代码执行错乱

STM8L刚上电的时候,时钟是HSI/8 =2M,然后我通过代码立刻设置成16M,看代码里都是直接写的寄存器配置的,也没有等待系统稳定,然后直接就执行一些外设初始化了,发现概率性的程序错乱,搞了好几天没发现问题,最后发现可能是时钟切换不稳定导致的,最后在切换成16M后,加了一个简单的for(int i=2;i>0;i--); 延时,就没复现问题了。

你可能感兴趣的:(单片机)