本帖最后由 toofree 于 2019-2-26 01:13 编辑 L( l; x- B, b) t 【STM8-SO8-DISCO】——5、上电延时5S,在配置SWIM 3 g1 [& E. P$ k7 T' s5 `STM8S001J3芯片没有NRST管脚,如果要将SWIM管脚用作IO或其它功能,那么需要在重配置此管脚之前,延时5秒钟。如果不加延时,直接配置SWIM为普通IO的话,将不能再次通过SWIM管脚下载或调试。 理论上,在上电复位后,在配置SWIM为IO功能前,是可以进入SWIM功能烧写程序的。但是这个时间窗口很短很短,也就是仅仅存在于理论上。 关于SWIM管脚使用不当,造成MCU锁死的问题,在几个月前就解答过坛友的疑问。$ V% A F4 k8 t" I , p8 V: w: ^4 Y: ^2 U, E% f 关于使用SWIM为其它功能,在多个文档上有过提示: 首先是STM8S001J3的数据手册“DS12129”; T6 x( h; x; r: }1 f1 x T 6 r+ {" o' }% m. R% J6 Y5 d 再次是用户参考手册“RM0016”;. z, _+ T& S f1 `3 S 而在应用笔记“AN5047”中,给出了具体实施方法; 3 w5 V6 |( F% g& K- G( g3 a3 Z' N0 e D9 }1 T& ~; i( k0 K! S 将以上代码,复制到前一贴工程中。 (【STM8-SO8-DISCO】——4、外部中断 https://www.stmcu.org.cn/module/f ... 9437&fromuid=307297 ) 编译,下载程序,并全速运行。 实验现象为,运行5秒后,LD1点亮;此后每按一次用户按键B1,LD1的状态翻转一次。如果在跑程序的最初5秒内,按用户按键B1,LD1的状态是不会有任何变化的。8 r2 f7 v+ i+ ]4 g9 `7 m. [, ] , h( i# F2 F% \% ^5 n' }8 n 关于SWIM用作其它功能,其它SO8封装的STM8也会有类似问题。比如STM8-SO8-DISCO板上的另外两种STM8,STM8L001J3和STM8L050J3。 : @* ~) w. T$ Z J / w/ K: _2 K |+ O8 \ + x H5 U+ h. B6 S- D" L% [! c 本贴用到的文档及测试工程附上: |