OpenEdv-开源电子网

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

STM32F103驱动12864,刚开机时,会闪烁4下,请问各位大虾,这是什么原因呢?(附代码)

[复制链接]

10

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2012-11-1
在线时间
29 小时
发表于 2015-5-7 08:51:41 | 显示全部楼层 |阅读模式
5金钱
主函数
[mw_shl_code=c,true]const unsigned char line1[]={"温度:"}; const unsigned char line2[]={"湿度:"}; const unsigned char line3[]={"风向:"}; const unsigned char line4[]={"风速:"}; int main(void) { Stm32_Clock_Init(9); //系统时钟设置 delay_init(72); //延时初始化 Ini_Lcd(); delay_ms(2); Disp_HZ(0x80,line1,3); delay_ms(2); Disp_HZ(0x90,line2,3); delay_ms(2); Disp_HZ(0x88,line3,3); delay_ms(2); Disp_HZ(0x98,line4,3); while(1) { //delay_ms(10); } } [/mw_shl_code]

子函数
[mw_shl_code=c,true]void Ini_Lcd(void) { RCC->APB2ENR|=1<<3; //使能PORTB时钟 RCC->APB2ENR|=1<<4; //使能PORTC时钟 GPIOB->CRH&=0X00000000; GPIOB->CRH|=0X33333333; //PB8-15 推挽输出 8位数据口 GPIOC->CRL&=0X00FFFFFF; GPIOC->CRL|=0X33000000; //PC6 PC7 GPIOC->CRH&=0XFFFFFF00; GPIOC->CRH|=0X00000033; //PC8 9 EN RW RS RST口 delay_ms(60); LCD_RST=0; delay_ms(20); LCD_RST=1; Write_Cmd(0x30); //基本指令集 delay_ms(10); Write_Cmd(0x30); //基本指令集 delay_ms(10); Write_Cmd(0x0C); //基本指令集 // // Write_Cmd(0x02); // 地址归位 // delay_ms(10); // Write_Cmd(0x0c); //整体显示打开,游标关闭 delay_ms(10); Write_Cmd(0x01); //清除显示 delay_ms(30); Write_Cmd(0x06); //游标右移 // delay_ms(1); // Write_Cmd(0x80); //设定显示的起始地址 } void Write_Cmd(u8 cmd) { u8 lcdtemp = 0; LCD_RS=0; //指令操作 LCD_RW=1; //读数据 GPIOB->CRH&=0X00000000; GPIOB->CRH|=0X88888888; //PB8-15 推挽输出 8位数据口 // GPIOB->ODR|=0xff; do //判忙 { LCD_EN=1; delay_us(100); lcdtemp =DATA8 ; // LCD_EN=0; } while(lcdtemp & 0x80==0x80); delay_ms(1); GPIOB->CRH&=0X00000000; GPIOB->CRH|=0X33333333; //PB0-7 推挽输出 8位数据口 LCD_RW=0; //写数据 GPIOB->ODR=cmd<<8; LCD_EN=1; delay_ms(1); LCD_EN=0; } void Write_Data(u8 dat) { u8 lcdtemp = 0; LCD_RS=0; //指令操作 LCD_RW=1; //读数据 GPIOB->CRH&=0X00000000; GPIOB->CRH|=0X88888888; //PB8-15 推挽输出 8位数据口 // GPIOB->ODR=0xff; do //判忙 { LCD_EN=1; delay_us(100); lcdtemp = DATA8; LCD_EN=0; } while(lcdtemp & 0x80==0x80); GPIOB->CRH&=0X00000000; GPIOB->CRH|=0X33333333; //PB0-7 推挽输出 8位数据口 LCD_RS=1; LCD_RW=0; GPIOB->ODR=dat<<8; LCD_EN=1; delay_ms(1); LCD_EN=0; } void Disp_HZ(u8 addr,const u8 * pt,u8 num) { u8 i; Write_Cmd(addr); delay_us(100); for(i = 0;i < (num*2);i++) Write_Data(*(pt++)); } [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

因为一键下载电路的影响,这个我在stm32不完全手册,有详细介绍,重点说明了的。 这个只是在第一次上电有这个问题,后续就不存在了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-7 08:51:42 | 显示全部楼层
因为一键下载电路的影响,这个我在stm32不完全手册,有详细介绍,重点说明了的。
这个只是在第一次上电有这个问题,后续就不存在了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2014-6-12
在线时间
54 小时
发表于 2015-5-7 13:16:55 | 显示全部楼层
如果是原子的板我知道啥原因,我现在就是这情况,每次断电再开机CH340大概会复位几次。可以尝试用适配器供电。
回复

使用道具 举报

10

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2012-11-1
在线时间
29 小时
 楼主| 发表于 2015-5-7 14:22:34 | 显示全部楼层
回复【2楼】Coder:
---------------------------------
用的就是原子的103mini开发板,目前的供电是USB的供电,换成电源适配器看看
回复

使用道具 举报

10

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2012-11-1
在线时间
29 小时
 楼主| 发表于 2015-5-8 14:06:27 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
哦哦,没有详细看,谢谢原子哥
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 18:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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