MDK坑爹的一个bug

这两天在测试用SPI读flash,基本上就是照着例程写的,但是怎么都不对 后来照着例程一句一句把代码替换掉,终于发现问题之所在 在定义读flash命令的时候,

阅读全文

正则表达式参考

正则表达式的一个参考,适合懂正则表达式但是忘了具体语法的时候过来看看- -
阅读全文

C/C++优先级列表

C的优先级有时候会发生很坑爹的问题- -贴个优先级表方便查看- -

有个C的,有个C++的,老实说没发现什么区别- -    
阅读全文

一个;引发的血案

话说今天用STM32自带的I2C来读写AT24C02,历经各种坎坷- - 最后能够成功写入,但是读取不成功,怀疑是连续读取的问题,于是照着官方例程改写成只读取一个字节,成功了,然后回头,把之前连续读取8个字节的程序段改成只读取一个字节

程序段如下

阅读全文

关于STM固件库中XXX_StructInit()函数

话说今天调一个东西,用到了DAC,明明能用的程序,莫名其妙的不能用,最后发现一个调用一个完全不相干的函数DisableOutput会使DAC失效,而不调用就能够正常使用。仔细看了一下源码,确实是完全不相干的。

阅读全文

找了半天字模,最后发现还是UCDOS带的字模最好用- -|

这两天折腾STM32的TFT,显示中文的时候要用到字模,找了半天工具,感觉也不能生成比较满意的字模,最后发现UCDOS自带的字模很好用,ASCII的字模是从0x01到0xff都有的图形的,而中文字模是基于GB2312的,算下来200多k,放VET6里面刚好够用。

320*240的分辨率比较尴尬,它们的最大公约数是80,也就是说如果想要把整个屏幕放满的中文方块字的话高度很宽度必须是8,16,20,40,80,其中20这个分辨率用的很少,8就太小了,16也有点显小,40的话一行240的分辨率就只能显示6个中文了- - 倒是2424这个分辨率比较合适,不过首先是320一列除以24除不尽,另外就是2424的字模放在512的flash已经放不下了- - 果断悲剧啊- -

先16*16的凑合用着吧。

顺便把提取出来的字库发上来- -

本地下载

阅读全文

用51模拟I2C读写AT24C02

这两天在看I2C,为了加深印象,准备用51软件模拟I2C的时序,折腾了一天,终于算是成功了,把我遇到的一些问题写出来吧。

阅读全文

用VIM结合Keil(MDK)写STM32、C51等程序

话说这段时间经常用Keil写些东西,写C51的时候倒还好,写STM32的程序的时候,由于我是用的STM32的官方固件库,里面的各种标识符相当长- -看起来可读性是挺不错的,

不过一个字母一个字母敲还是挺蛋疼的,于是准备用外部编辑器。好在Keil可以很方便的调用外部编辑器,

阅读全文

被C的优先级坑了

话说今天弄12864的液晶屏,判断屏幕是否busy的时候用到了这么一句

return (status & 0x80 == 0);

看起来挺不错的……但是由于0x80 == 0的优先级比较高,返回值永远都是0,于是乎……悲剧了……

究其原因,感觉还是位运算用的少导致的- -
阅读全文

最近看了下ARM的东西,谈谈我对ARM,Cortax的理解

这两天看了下ARM的东西,呃……乱看为主,谈下我对ARM的理解吧- -

阅读全文