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

2020-02-20 21:07发布

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

使用IO模拟SPI驱动液晶,向坛友请教单独控制一位IO什么办法好,我在8位机上用位域,32位感觉用位域太臃肿了。暂时用宏定义也挺方便。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
西施糖葫芦
1楼-- · 2020-02-21 11:55
这个IO口操作是不是有改动其它IO口的风险?
laotui
2楼-- · 2020-02-21 16:29
bbstr 发表于 2014-9-15 08:51
楼主,这个工程是用PE生成的吗?直接用SPI控制器,在编译出来的尺寸上是不是会小一些 ...

我没用PE工程是用官方的例程改的,没用硬件SPI的原因:1.对寄存器还不熟只看了手册IO的部分。2.液晶能写不能读有硬件SPI浪费。
至于代码尺寸IO模拟也不大,不知道PE产生的代码尺寸如何。
laotui
3楼-- · 2020-02-21 18:25
 精彩回答 2  元偷偷看……
西施糖葫芦
4楼-- · 2020-02-22 00:07
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
5楼-- · 2020-02-22 00:23
GPIOA_PCOR|=1<<16;
GPIOA_PCOR &=~(1<<16);
我的习惯是这样写,现在调IIC,这个程序是可用的,没有问题,至于有没有影响其他IO没有验证。
laotui
6楼-- · 2020-02-22 04:45
西施糖葫芦 发表于 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();  

一周热门 更多>