KE02Z64 IO模拟SPI 驱动液晶 共享代码
本帖最后由 laotui 于 2014-9-15 08:29 编辑使用IO模拟SPI驱动液晶,向坛友请教单独控制一位IO什么办法好,我在8位机上用位域,32位感觉用位域太臃肿了。暂时用宏定义也挺方便。 看了下LZ的源码,貌似也没有什么麻烦的。挺易懂、简单,如下:
#define SDA_0 GPIOA_PCOR = (1<<16)
#define SDA_1 GPIOA_PSOR = (1<<16) 本帖最后由 laotui 于 2014-9-15 08:30 编辑
fengyunyu 发表于 2014-9-14 23:42
看了下LZ的源码,貌似也没有什么麻烦的。挺易懂、简单,如下:
#define SDA_0 GPIOA_PCOR = (1 ...
用的这几个寄存器应该是飞思卡尔加的,用起来也方便但要是能一位一位的控制更好。 谢谢分享! 神速啊,就已经打样回来用上了,屏的顶部空的一片是图标 ?
holts2 发表于 2014-9-15 08:39
神速啊,就已经打样回来用上了,屏的顶部空的一片是图标 ?
最小系统不打样了,又申请了KE02的板子焊上排针直接用了,最上面是图标。 楼主,这个工程是用PE生成的吗?直接用SPI控制器,在编译出来的尺寸上是不是会小一些 这个IO口操作是不是有改动其它IO口的风险? bbstr 发表于 2014-9-15 08:51
楼主,这个工程是用PE生成的吗?直接用SPI控制器,在编译出来的尺寸上是不是会小一些 ...
我没用PE工程是用官方的例程改的,没用硬件SPI的原因:1.对寄存器还不熟只看了手册IO的部分。2.液晶能写不能读有硬件SPI浪费。
至于代码尺寸IO模拟也不大,不知道PE产生的代码尺寸如何。 西施糖葫芦 发表于 2014-9-15 08:54
这个IO口操作是不是有改动其它IO口的风险?
用的都是连续的几个IO,飞思卡尔加的几个寄存器都是只能写回读都是0,暂时还没发现IO互相影响。 laotui 发表于 2014-9-15 08:57
用的都是连续的几个IO,飞思卡尔加的几个寄存器都是只能写回读都是0,暂时还没发现IO互相影响。 ...
GPIOA_PCOR = (1<<16) 这句话应该也会把GPIOA其它的IO口改掉吧,改成GPIOA_PCOR =GPIOA_PCOR| (1<<16) 是不是会好点,0或上去不会影响其它位,只会把16位改成1.如果要置为0的话就GPIOA_PCOR =GPIOA_PCOR&( ~(1<<16))酱紫。 GPIOA_PCOR|=1<<16;
GPIOA_PCOR &=~(1<<16);
我的习惯是这样写,现在调IIC,这个程序是可用的,没有问题,至于有没有影响其他IO没有验证。 西施糖葫芦 发表于 2014-9-16 20:02
GPIOA_PCOR = (1
刚才验证了一下是不影响的,不加逻辑运算IO没有互相影响。
GPIOB_PCOR=1<<25;
GPIOB_PSOR=1<<26;
GPIOB_PSOR=1<<7;
delay();
GPIOB_PSOR=1<<25;
GPIOB_PCOR=1<<26;
GPIOB_PSOR=1<<7;
delay();
GPIOB_PSOR=1<<25;
GPIOB_PSOR=1<<26;
GPIOB_PCOR=1<<7;
delay(); 下载看看 这种IO操作方法倒是也挺方便的。 LZ用的什么环境?CW, KEIL, IAR? ke02貌似就没有spi接口
你的屏是shanyan那个送的小屏吗,都有底板了啊,你自己打样的么 laotui 发表于 2014-9-16 21:46
刚才验证了一下是不影响的,不加逻辑运算IO没有互相影响。
GPIOB_PCOR=1 ...
有点奇怪,你这样整体赋值的话理论上是会改掉其它IO口的电平状态的。我还是比较建议加上与或操作,比较稳妥。 laotui 发表于 2014-9-16 20:45
GPIOA_PCOR|=1
恩你这样写和我的是一个意思,我也习惯这样子写 myxiaonia 发表于 2014-9-17 11:21
ke02貌似就没有spi接口
你的屏是shanyan那个送的小屏吗,都有底板了啊,你自己打样的么 ...
是自己打样的PCB在我另一个帖子里共享了。http://www.amobbs.com/thread-5594142-1-1.html 你好,你那个屏幕是从哪里能的,自己做的吗?有多大呢,谢谢,最近有个项目需要个屏幕,但是一直找不到合适的
页:
[1]