随笔分类 - STM8
摘要:1、将uint8_t型变量A的第6位(bit5)清零,其他位不变。 A &= ~(1<<5); 1左移5位,得到0010 0000 按位取反,得到1101 1111 所得数再A相或,第6位被置0,其它位不变。2、同理,将A的第6位置1。 A |= (1<<5);3、将A的第6位取反。 A ^= (1<<5);
阅读全文
摘要:sprintf函数太大,在STM8上面根本不敢用,动不动就.text overflow。为了将采集的数值通过串口上传到计算机,只能自己写了一个浮点数转换成字符串的函数: #include #include static char table[]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};void num2char(char *st...
阅读全文
摘要:一、思路 基于STM8,按键处理,思路是这样的: 每20ms左右一次去扫描按键,用一个key_now记录当前值,用key_last记录上次的值,如果key_now和key_last同时有效,则开始进行cnt++。 我设定两个阈值,LONG_PRESS为100(100*20ms=2s),SHORT_PRESS为4(4*20ms=80ms,去抖)。 cnt大于LONG_PRESS,...
阅读全文
摘要:情况是这样的,我的程序里有一个参数,数值不超过1000,我要保存到EEPROM中,那就要分两个字节存放。我用下面的方式保存是正常的: BASE = 0x4000; param = 999; eeprom_write(BASE+0x01, param/256); eeprom_write(BASE+0x02, param%256); ...
阅读全文
摘要:STM8虽然功能齐全,但是空间不足也是经常出来的情况。要么.text overflow,要么.bss overflow,让人头疼。这里把一些优化方案列出来,让空间得到充分利用: 1、在Project settings下,C Compiler,Optimizations选择Customize 重点是把Split Functions选上。 意思就是只编译用到的函数,不然编译器会很傻地把你用到...
阅读全文
摘要:偶然的机会,发现STM8真是又便宜又好用啊,哈哈! 买了一个STM8S103F3的小板子,再加一个ST-Link调试器,总共才35块钱!对于我们这种玩习惯了动辄上千上万的FPGA开发板的人来说,就是白菜中战斗机啊! 说一下STM8S103F3的特点吧: 1、电平:支持3.3V~5V 2、内部自带16MHz振荡器 3、中断、定时器、看门狗、IIC、SPI、UART、AD 该有的基本全有了...
阅读全文