wenyangzeng 发表于 2014-12-23 22:35:30

[STM32F072 Nucleo ] 开发板驱动320240LCD

本帖最后由 wenyangzeng 于 2014-12-23 22:43 编辑

    手头有1片RA8835主控芯片的320X240图形液晶模块,决定拿它在STM32F072 Nucleo 开发板上试用看看。使用杜邦连接线进行连接,见下图:

    进入STM32CubeMX 花费2分钟简单配置了相关GPIO口为推挽输出,导入MDK5。在MDK5中添加驱动RA8835的相关函数,,并为要显示的汉字提取了字模。显示效果见下图:



    控制RA8835的GPIO口的位操作采用以下预定义:
#define      cs_H HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,GPIO_PIN_SET)
#define      cs_L HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,GPIO_PIN_RESET)
#define      a0_H HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET)
#define      a0_L HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET)
#define      wr_H HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3,GPIO_PIN_SET)
#define      wr_L HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3,GPIO_PIN_RESET)
#define      rst_H HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET)
#define      rst_L HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET)
#define      rd_H HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET)
#define      rd_L HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET)


    而传送给RA8835数据总线的底层函数操作,找遍了STM32CubeMX生成的固件库竟然找不到诸如STM32F0固件库的16位的数据传输之类函数:
GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)可供调用,使得用惯固件函数调用的习惯现在有点不适应了。只能采用寄存器操作方式进行:
void write_cmda(uint8_t cm,uint8_t com)
{
cs_L;
if(cm==0)
         a0_L;
else
      a0_H;
wr_L;
GPIOC->ODR &=0xff00;
GPIOC->ODR |=com;
__nop();__nop(); __nop();__nop();
wr_H;
__nop();__nop(); __nop();__nop(); __nop();__nop();



int main(void)
{

HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
lcd_init();
lcd_clr();
Gotoxy(0x00,0x00);
LCD_kuang();
disp_ascii0816("STM32F072-Nulceo",2006);
display_hanzi(kai,1664);
display_hanzi(fa,1667);
display_hanzi(ban,1670);
   display_hanzi(qu,3406);
   display_hanzi(dong,3409);
    disp_ascii0816("320x240 LCM",3814);
    display_hanzi(mo,3466);
    display_hanzi(kuai,3469);
    display_hanzi(bian,5206);
    display_hanzi(cheng,5209);
    display_hanzi(huan,5212);
    display_hanzi(jing,5215);
    display_hanzi(maohao,5218);
    disp_ascii0816("STM32 CubeMX & MDK5",7010);
      
while (1)
{
      
      }
}


CubeMX爱你不容易!





wenyangzeng 发表于 2018-3-14 11:58:49

本帖最后由 wenyangzeng 于 2018-3-14 13:00 编辑

cyh5460 发表于 2018-3-13 23:13
能否将整个工程包发我一下,谢谢
不明白楼上是在编程呢?还是让人代编程?整个RA8835最底层函数都共享了,应该自己消化吸收,化为自己的知识财富。要写好RA8835,楼主必须吃透RA8835工作原理,才可以自由发挥。比如RA8835显示方式与其他12864不同,它是每水平行8个Bit一次扫描,扫描40个字节完成1行,12864则是垂直扫描1列。工作原理不同。
    楼主让我发送整个全部源代码给你。源代码全部也就显示帖子开头图片里的显示信息而已。如何套在您的应用中?
   举个例子:你如何在实际应用中在任何位置显示16点阵、24点阵、32点阵、64点阵汉字?
    编程过程参考别人的代码是正常的也是必须经过的过程,但是别人的代码只是参考借鉴。要自己深入进去研究,才能真正写出自己的财富!其实写LCD最主要的就是初始化代码,这些代码如果厂家不给你,你是无法成功的。请你珍惜楼主共享给你的RA8835底层原始代码,真正做到他为己用。将近4年前的帖子,全部源代码多次修改,实在无法完全还原,望谅!
   祝楼上不断进步。
还有差点忘记:那个AsciiDot0816()故名思意是一个ASIIC 8×16点阵英文符号显示的函数而已,而ASIIC 8×16点字库应该到处DownLoad都找得到的。

wenyangzeng 发表于 2019-10-18 14:47:23

带你飞啊啊 发表于 2019-10-18 14:37
楼主我想问问看。。。你有检测busy繁忙标志?为啥我一直是繁忙标志高电平,,第二个是所有的字库全靠写一行 ...

1、无需检测忙;
2、8835是一次写8Bit,字库当然要自己做;
3、打点函数实际上还是一次写8Bit,经过与或得到某一点的写入
4、读数据估计是读方向旋转了90°所以不正常。

带你飞啊啊 发表于 2019-10-18 16:06:30

wenyangzeng 发表于 2019-10-18 14:47
1、无需检测忙;
2、8835是一次写8Bit,字库当然要自己做;
3、打点函数实际上还是一次写8Bit,经过与或得 ...

读数据手册说要不在繁忙才能读。。然后如果忽略繁忙直接读 ,0xff或0x00写全屏,读到的数据都一直变,所以我不清楚啥情况。。旋转90°啥意思

沐紫 发表于 2014-12-24 10:07:18

谢谢楼主分享~

程序员 发表于 2014-12-27 19:30:08

楼主厉害啊

zhanglaoda 发表于 2015-1-5 12:26:33

可以专门设一个图形驱动板块。

博根 发表于 2015-1-5 13:14:20


谢谢楼主分享~

AndyYau-268557 发表于 2015-1-5 13:28:48

我win7装mdk5失败了,加不上pack怎么回事?自己下载也加载不了,有明白人指导下吗?

wenyangzeng 发表于 2015-1-6 19:59:11

AndyYau-268557 发表于 2015-1-5 13:28
我win7装mdk5失败了,加不上pack怎么回事?自己下载也加载不了,有明白人指导下吗? ...

https://www.stmcu.org.cn/module/forum/thread-598151-1-1.html

AndyYau-268557 发表于 2015-1-6 20:04:51

谢谢,得以解决

深圳小明 发表于 2017-2-4 13:39:36

没看到代码啊:dizzy:

wenyangzeng 发表于 2017-2-4 16:04:26

本帖最后由 wenyangzeng 于 2017-2-4 17:32 编辑

深圳小明 发表于 2017-2-4 13:39
没看到代码啊
在1楼呀,下载次数66,楼上需要配眼镜了。

深圳小明 发表于 2017-2-14 10:39:18

wenyangzeng 发表于 2017-2-4 16:04
在1楼呀,下载次数66,楼上需要配眼镜了。

我知道1楼,下载次数72了,但是下载下来只有一个hex文件。所以我才说没有看到代码。

wenyangzeng 发表于 2017-2-15 10:28:59

深圳小明 发表于 2017-2-14 10:39
我知道1楼,下载次数72了,但是下载下来只有一个hex文件。所以我才说没有看到代码。 ...

这个文件可供你参考:

深圳小明 发表于 2017-2-15 13:59:25

wenyangzeng 发表于 2017-2-15 10:28
这个文件可供你参考:

谢谢!虽然我已经用FSMC驱动好了。还是非常感谢。

zbber 发表于 2017-2-15 14:30:10

可以专门设一个图形驱动板块

colinh 发表于 2017-2-24 15:14:26

深圳小明 发表于 2017-2-15 13:59
谢谢!虽然我已经用FSMC驱动好了。还是非常感谢。

朋友你好,我最近也在调试RA8835的屏,用的也是FSMC模式,FSMC的时序用示波器看似乎没问题,就是不能显示,可以交流一下吗?
页: [1] 2 3
查看完整版本: [STM32F072 Nucleo ] 开发板驱动320240LCD