OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5620|回复: 10

把51的5110程序移植到STM32的开发板上面,无法显示,程序如下

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2014-8-4
在线时间
0 小时
发表于 2014-8-4 11:50:43 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include"nokia_5110.h" /******Nokia5110液晶的字符数组******/ const unsigned char font6x8[][6] = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // " { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // # { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $ { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // % { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // & { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // ' { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ( { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ) { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // * { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // + { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // , { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // - { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // . { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // / { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0 { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1 { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3 { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4 { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6 { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9 { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // : { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ; { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // < { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // = { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // > { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ? { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @ { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [ { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55 { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ] { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^ { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _ { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // ' { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 } // horiz lines }; /******Nokia5110液晶引脚初始化函数******/ void Nokia5100_Init_Pin(void) { RCC -> APB2ENR |= 1 << 6; GPIOE -> CRL &= 0XFFF00000; //初始化寄存器 GPIOE -> CRL |= 0X00033333; //设置输出速度为50Mhz //GPIOE -> ODR |= 11 << 0; //初始化Nokia5110的管脚,先复位拉低一下 //delay_us(1); //GPIOE -> ODR |= 0X1B << 0; //初始化Nokia5110的管脚,先复位拉高一下 } //由上两步产生一个复位脉冲 /******Nokia5110液晶写一个字节函数******/ void Nokia5110_Write_Byte(u8 data,u8 command) { u8 i; Nokia5110_Ce = 1; delay_us(1); Nokia5110_Ce = 0; if(command == 0) Nokia5110_Dc = 0; else Nokia5110_Dc = 1; for(i = 0;i < 8;i++) { if(data&0x80) Nokia5110_Din = 1; else Nokia5110_Din = 0; Nokia5110_Clk = 0; delay_ms(10); data = data << 1; Nokia5110_Clk = 1; } Nokia5110_Ce = 1; //Nokia5110_Clk = 1; } /******Nokia5110液晶显示初始化函数******/ void Nokia5110_Init_Dispaly(void) { Nokia5110_Rst = 0; delay_us(10); Nokia5110_Rst = 1; Nokia5110_Ce = 0; delay_ms(10); Nokia5110_Ce = 1; delay_ms(100); Nokia5110_Write_Byte(0X21,0); Nokia5110_Write_Byte(0XC8,0); Nokia5110_Write_Byte(0X06,0); Nokia5110_Write_Byte(0X13,0); Nokia5110_Write_Byte(0X20,0); Nokia5110_Clear(); Nokia5110_Write_Byte(0X0C,0); Nokia5110_Ce = 1; } /******Nokia5110液晶清屏函数******/ void Nokia5110_Clear(void) { u8 i; Nokia5110_Write_Byte(0X0C,0); Nokia5110_Write_Byte(0X80,0); for(i = 0;i < 504;i++) { Nokia5110_Write_Byte(0,1); } } /******Nokia5110液晶写数据位置函数******/ void Nokia5110_Address(u8 x,u8 y) { Nokia5110_Write_Byte(0X40|x,0); Nokia5110_Write_Byte(0X80|y,0); } /******Nokia5110写字符串函数******/ void Nokia5110_Write_String(u8 _x,u8 _y,char *s) { Nokia5110_Address(_x,_y); while(*s) { Nokia5110_Write_Char(*s); s++; } } /******Nokia5110一个字符函数******/ void Nokia5110_Write_Char(char _char) { u8 _line,c; c -= 32; for(_line = 0;_line < 6;_line++) { Nokia5110_Write_Byte(font6x8[c][_line], 1); } } [/mw_shl_code]

早日离开菜鸟营。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1843
金钱
1843
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-8-4 11:57:46 | 显示全部楼层
写字节,怎么要delay_ms(10)这么长?
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1843
金钱
1843
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-8-4 12:00:04 | 显示全部楼层
接口设置对了,一般问题不大,多检查一下,看是不是IO有其他复用功能,需要关闭才行。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2014-8-4
在线时间
0 小时
 楼主| 发表于 2014-8-4 12:41:12 | 显示全部楼层
回复【2楼】TinyBoy:
---------------------------------是参照网上成功的例子的,因为STM32的处理速度比51快很多,所以就加长的延迟时间
早日离开菜鸟营。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2014-8-4
在线时间
0 小时
 楼主| 发表于 2014-8-4 12:44:33 | 显示全部楼层
回复【3楼】TinyBoy:
---------------------------------
我用的是PE口的0到4,不懂有没有,只懂得PA口的有,要用PA,要禁止JTAG和SWD。
早日离开菜鸟营。
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1843
金钱
1843
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-8-4 13:36:38 | 显示全部楼层
我感觉你这样给delay_ms(10)不大妥吧,你这样:
Nokia5110_Clk = 0;  

   delay_us(4);  

 data = data << 1;  

   Nokia5110_Clk = 1; 
delay_us(4);  
试试,如果还是一样,多检查一下,应该是其他问题。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2014-8-4
在线时间
0 小时
 楼主| 发表于 2014-8-4 19:43:39 | 显示全部楼层
回复【6楼】TinyBoy:
---------------------------------
原本就是这个延时的,在51上是可以实现,但是STM32的不可以,我就改成上面那样了
早日离开菜鸟营。
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1843
金钱
1843
注册时间
2014-6-27
在线时间
983 小时
发表于 2014-8-4 19:58:07 | 显示全部楼层
延时在STM32里面也是一样的,说明不是这个问题了,是其他问题了,你再检查一下其他问题。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2014-8-4
在线时间
0 小时
 楼主| 发表于 2014-8-4 20:45:18 | 显示全部楼层
回复【8楼】TinyBoy:
---------------------------------
好的 谢谢你一直的关注了
早日离开菜鸟营。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2014-8-4
在线时间
0 小时
 楼主| 发表于 2014-8-6 18:59:14 | 显示全部楼层
原子哥呢,这个问题还没有解决
早日离开菜鸟营。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-6 22:52:20 | 显示全部楼层
回复【10楼】小喔:
---------------------------------
我只能帮顶了,呵呵...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-4 07:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表