STM8S003F3调试跳坑记录

2019-07-19 21:00发布

本帖最后由 aozima 于 2016-7-29 13:27 编辑

1. CLK->PCKENR1 使能 CLK_PCKENR1_UART1 无效
想降低功耗,单独打开 CLK_PCKENR1_UART1,但UART无输出。
核对资料发现:stm8s.h中是这样定义的

STM8S.h.jpg

英文版参考手册上面是这样写的
RM16.jpg

数据手册上面是这样的
DS.jpg
解决方法: 不要使用 stm8s.h中的 CLK_PCKENR1_UART1
自己使能 bit3

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
aozima
2019-07-20 08:55
4. 不要在主程序和中断程序中同时做8bit以上的乘除法运算,会出错

STM8的乘除法指令是8位的,做16位或以上乘法运算时,编译器实际上调用了一个函数;
而这个函数竟然用到了几个编译器自定义的全局变量;
在进入中断时,这几个全局变量是不会被自动保存的,从而造成这个乘法运算函数不可重入;

当主程序和中断同时使用8位以上乘除法时,自然就出错。

一周热门 更多>