49回答

1收藏

STM32F0 #16进程帖(一)----- LCD12864液晶显示

 

回答|共 49 个

倒序浏览

31#

陈克雄

发表于 2014-5-13 04:08:52 | 只看该作者

分享到:
zyj 发表于 2014-5-12 13:48
只需要SID: PC0  SCLK: PC1这两根线吗?

是的,只需要两根信号线
32#

wali_iva

发表于 2014-5-13 16:18:22 | 只看该作者

能来个电路图吗?
33#

wali_iva

发表于 2014-5-13 22:50:19 | 只看该作者

这句       #define LCD12864_SID_OUT(x)                (x) ? (GPIOC->BSRR |= 1<<0) : (GPIOC->BRR |= 1<<0)
        #define LCD12864_SCLK_OUT(x)        (x) ? (GPIOC->BSRR |= 1<<1) : (GPIOC->BRR |= 1<<1)
是不是应该这样写  #define LCD12864_SID_OUT(x)                (x) ? (GPIOC->BSRR |= 1<<0) : (GPIOC->BRR |= 1<<(16+1)) 解释下这两句吧
34#

wali_iva

发表于 2014-5-13 23:18:14 | 只看该作者

PS引脚怎么接的?直接接的GND吗?看到回答呀
35#

陈克雄

发表于 2014-5-14 03:59:04 | 只看该作者

嘉嘉_雪儿 发表于 2014-5-13 16:18
能来个电路图吗?

电路图如下,RS拉高,PSB拉低,R/W 和 E 在串行控制中分别作为数据线和时钟线

36#

陈克雄

发表于 2014-5-14 04:02:30 | 只看该作者

嘉嘉_雪儿 发表于 2014-5-13 22:50
这句       #define LCD12864_SID_OUT(x)                (x) ? (GPIOC->BSRR |= 1

(x) ? (GPIOC->BSRR |= 1<<0) : (GPIOC->BRR |= 1<<0)
                 ||
                 ↓↓
(x) ? (将数据线拉高) : (将数据线拉低)
37#

陈克雄

发表于 2014-5-14 04:06:22 | 只看该作者

嘉嘉_雪儿 发表于 2014-5-13 22:50
这句       #define LCD12864_SID_OUT(x)                (x) ? (GPIOC->BSRR |= 1

里面的  GPIOC->BSRR |= 1<<0  是使用C语言的位操作对STM32的 BSRR寄存器的 第0位 置1,对应作用就是使PC_0 引脚输出高电平
38#

wali_iva

发表于 2014-5-14 16:21:27 | 只看该作者

CS不是低电平有效吗?这里怎么是高电平呀??你这个图对吗?
39#

陈克雄

发表于 2014-5-14 20:46:58 | 只看该作者

嘉嘉_雪儿 发表于 2014-5-14 16:21
CS不是低电平有效吗?这里怎么是高电平呀??你这个图对吗?

在串行控制时,(RS)CS是片选,高电平选中。
40#

wali_iva

发表于 2014-5-14 21:47:29 | 只看该作者

这里        void GPIO_Initializations(void)
        {
                GPIO_InitTypeDef GPIO_InitStructure;

                /* GPIOA Configuration */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;                        //output mode
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;           //high speed
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;                //pushpull mode
                GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;                                //
                GPIO_Init(GPIOC, &GPIO_InitStructure);
        }
怎么不这样写呀?你这个 GPIO_PuPd_NOPULL手册里也没有呀啊?
我这样写的        GPIO_InitTypeDef GPIO_InitStructure;
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                  
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
                GPIO_Init(GPIOC, &GPIO_InitStructure);
我只有PC2和PC3两个引脚了,其余的都用了
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条