laotui 发表于 2014-9-14 23:26:11

KE02Z64 IO模拟SPI 驱动液晶 共享代码

本帖最后由 laotui 于 2014-9-15 08:29 编辑

使用IO模拟SPI驱动液晶,向坛友请教单独控制一位IO什么办法好,我在8位机上用位域,32位感觉用位域太臃肿了。暂时用宏定义也挺方便。

fengyunyu 发表于 2014-9-14 23:42:38

看了下LZ的源码,貌似也没有什么麻烦的。挺易懂、简单,如下:
#define SDA_0                        GPIOA_PCOR = (1<<16)
#define SDA_1                      GPIOA_PSOR = (1<<16)

laotui 发表于 2014-9-14 23:45:57

本帖最后由 laotui 于 2014-9-15 08:30 编辑

fengyunyu 发表于 2014-9-14 23:42
看了下LZ的源码,貌似也没有什么麻烦的。挺易懂、简单,如下:
#define SDA_0                        GPIOA_PCOR = (1 ...

用的这几个寄存器应该是飞思卡尔加的,用起来也方便但要是能一位一位的控制更好。

zhaotyue 发表于 2014-9-15 08:13:23

谢谢分享!         

holts2 发表于 2014-9-15 08:39:58

神速啊,就已经打样回来用上了,屏的顶部空的一片是图标 ?

laotui 发表于 2014-9-15 08:41:36

holts2 发表于 2014-9-15 08:39
神速啊,就已经打样回来用上了,屏的顶部空的一片是图标 ?

最小系统不打样了,又申请了KE02的板子焊上排针直接用了,最上面是图标。

bbstr 发表于 2014-9-15 08:51:32

楼主,这个工程是用PE生成的吗?直接用SPI控制器,在编译出来的尺寸上是不是会小一些

西施糖葫芦 发表于 2014-9-15 08:54:08

这个IO口操作是不是有改动其它IO口的风险?

laotui 发表于 2014-9-15 08:56:09

bbstr 发表于 2014-9-15 08:51
楼主,这个工程是用PE生成的吗?直接用SPI控制器,在编译出来的尺寸上是不是会小一些 ...

我没用PE工程是用官方的例程改的,没用硬件SPI的原因:1.对寄存器还不熟只看了手册IO的部分。2.液晶能写不能读有硬件SPI浪费。
至于代码尺寸IO模拟也不大,不知道PE产生的代码尺寸如何。

laotui 发表于 2014-9-15 08:57:38

西施糖葫芦 发表于 2014-9-15 08:54
这个IO口操作是不是有改动其它IO口的风险?

用的都是连续的几个IO,飞思卡尔加的几个寄存器都是只能写回读都是0,暂时还没发现IO互相影响。

西施糖葫芦 发表于 2014-9-16 20:02:11

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))酱紫。

laotui 发表于 2014-9-16 20:45:16

GPIOA_PCOR|=1<<16;
GPIOA_PCOR &=~(1<<16);
我的习惯是这样写,现在调IIC,这个程序是可用的,没有问题,至于有没有影响其他IO没有验证。

laotui 发表于 2014-9-16 21:46:28

西施糖葫芦 发表于 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();

n_mos 发表于 2014-9-16 22:10:23

下载看看

xjmlfm1 发表于 2014-9-16 23:17:09

这种IO操作方法倒是也挺方便的。

mcucow 发表于 2014-9-17 10:38:57

LZ用的什么环境?CW, KEIL, IAR?

myxiaonia 发表于 2014-9-17 11:21:48

ke02貌似就没有spi接口

你的屏是shanyan那个送的小屏吗,都有底板了啊,你自己打样的么

西施糖葫芦 发表于 2014-9-17 11:45:38

laotui 发表于 2014-9-16 21:46
刚才验证了一下是不影响的,不加逻辑运算IO没有互相影响。
    GPIOB_PCOR=1 ...

有点奇怪,你这样整体赋值的话理论上是会改掉其它IO口的电平状态的。我还是比较建议加上与或操作,比较稳妥。

西施糖葫芦 发表于 2014-9-17 11:51:04

laotui 发表于 2014-9-16 20:45
GPIOA_PCOR|=1

恩你这样写和我的是一个意思,我也习惯这样子写

laotui 发表于 2014-9-17 14:01:20

myxiaonia 发表于 2014-9-17 11:21
ke02貌似就没有spi接口

你的屏是shanyan那个送的小屏吗,都有底板了啊,你自己打样的么 ...

是自己打样的PCB在我另一个帖子里共享了。http://www.amobbs.com/thread-5594142-1-1.html

caesarsong 发表于 2014-9-17 22:23:24

你好,你那个屏幕是从哪里能的,自己做的吗?有多大呢,谢谢,最近有个项目需要个屏幕,但是一直找不到合适的
页: [1]
查看完整版本: KE02Z64 IO模拟SPI 驱动液晶 共享代码