STM8
水煮丸子
这个作者很懒,什么都没留下…
展开
-
IAR调试STM8S遇到函数返回值错误的问题
出现问题是在stm8s003上调试EEPROM操作的时候,从逻辑分析仪抓取IIC通讯数据,看到读取和写入都正常,正常情况下操作成功会直接返回0x00;但是这次总是返回0x37,单步跟踪看到return的的确是0,但是返回值赋给一个变量后就变成0x37,这个驱动以前使用过没有问题,这次不知道怎么抽风了IIC驱动是在独立C文件中,调用是在另一个文件里面,通过头文件extern声明引用,和以前的程序交叉对比后发现IIC.h里的函数声明被注释掉了,相当于没有声明就直接调用了,最后去掉注释后便恢复正常了...原创 2020-08-31 21:26:19 · 550 阅读 · 0 评论 -
STM8S 定时器第一次使用时间不准确的问题
以前用定时器只是提供系统的5ms时基,并没有发现问题,最近做红外遥控器的解码,发现启动定时器TIM2后,第一次总是时间没到就触发中断了,之后也都正常了,也就是说问题出在刚配置好第一次使用的时候由手册得知,定时器的预分频器PSCR并不是立即生效的,只有触发一次中断事件后,才会写入设定的分频值,系统也提供了EGR寄存器的UG位来主动软件触发中断事件,可以用来解决这个问题...原创 2020-07-19 13:42:05 · 770 阅读 · 0 评论 -
同一个STM8工程换目录位置后生成的HEX校验和不一致的问题
在使用IAR FOR STM8做003开发的时候,发现同一个工程,相同的文件,在拷贝到其他目录后,重新编译生成的HEX和原来的不一致,这是因为HEX文件尾部有目录的信息,所以换目录校验和会变,但功能没变,解决方法就是在stm8s_conf.h中注释掉 断言#define USE_FULL_ASSERT (1) ;改之前先去掉文件的只读属性,改完再加上只读,比较发现关掉能省出二百多字节...原创 2020-07-10 11:12:31 · 645 阅读 · 0 评论 -
解决STM8S103K3T6打开BEEP功能遇到的无法操作BEEP_CSR的问题
最近项目用到了STM8S103K3T6的beep功能,调试时遇到了无法更改寄存器BEEP_CSR的值的问题,造成无法开启beep功能;网上一搜全是提到OPTION BYTE的设置问题,不管用IAR或者stvp烧写前设置,还是在程序中操作FLASH通过软件方式改变OPTION BYTE,都没有作用,自己翻看最新版的手册,里面讲的也是前后冲突,英文版的也是言归正传,项目中就是在PD4脚接的无源蜂鸣器...原创 2019-03-26 15:50:10 · 1128 阅读 · 0 评论 -
STM8读取AD值偶尔跳变出错的问题
在调试STM8S103K3T6的AD功能时,发现当温度快速变化时(吹风机模拟),读取到的AD值会偶尔出现跳变,出现的位置相对固定;AD时钟设为2Mhz,每100ms采集一次,单次单路采集,通道无切换,用示波器看供电电压和AD口电压都没有毛刺等跳变,可以排除外部器件的问题;后来查看手册发现问题,DRH/DRL数据的左对齐和右对齐方式,对应不同的读取顺序我使用的右对齐,把程序改成先读DRL,再读D...原创 2019-03-28 10:26:02 · 1787 阅读 · 3 评论