OpenEdv-开源电子网

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

STM32407探索者串口调通之后加SPI屏程序就不通的问题

[复制链接]

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2017-3-28
在线时间
19 小时
发表于 2018-6-26 22:01:08 | 显示全部楼层 |阅读模式
1金钱
大家好。我把stm32  F407探索者的串口调试通之后,然后添加了点亮液晶屏的程序,发现串口就不通了,然后我屏蔽点屏的头文件程序,串口又通了,那么问题来了,串口跟oled.h有什么冲突呢???

最佳答案

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

无非是你的代码改变了IO配置,仿真,看SPI的配置是否随着OLED的初始化,变化了,很容易解决的问题
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-26 22:01:09 | 显示全部楼层
无非是你的代码改变了IO配置,仿真,看SPI的配置是否随着OLED的初始化,变化了,很容易解决的问题
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2017-3-28
在线时间
19 小时
 楼主| 发表于 2018-6-26 22:02:08 | 显示全部楼层
oled.h头文件程序如下:
#ifndef __OLED_H
#define __OLED_H                                   
#include "sys.h"
#include "stdlib.h"          
#define LCD_W 240
#define LCD_H 320
#define        u8 unsigned char
#define        u16 unsigned int
#define        u32 unsigned long

//OLEDÄ£ê½éèÖÃ
//0:4Ïß′®DDÄ£ê½
//1:2¢DD8080Ä£ê½
#define OLED_MODE 0
#define SIZE 16
#define XLevelL                0x00
#define XLevelH                0x10
#define Max_Column        128
#define Max_Row                64
#define        Brightness        0xFF
#define X_WIDTH         128
#define Y_WIDTH         64                                                              
//-----------------OLED¶Ë¿ú¶¨òå----------------                                            
#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_5)//CLK
#define OLED_SCLK_Set() GPIO_SetBits(GPIOA,GPIO_Pin_5)

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_7)//DIN
#define OLED_SDIN_Set() GPIO_SetBits(GPIOA,GPIO_Pin_7)

#define OLED_RST_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_0)//RES
#define OLED_RST_Set() GPIO_SetBits(GPIOB,GPIO_Pin_0)

#define OLED_DC_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_1)//DC
#define OLED_DC_Set() GPIO_SetBits(GPIOB,GPIO_Pin_1)
                     
#define OLED_BLK_Clr()  GPIO_ResetBits(GPIOA,GPIO_Pin_4)//CS
#define OLED_BLK_Set()  GPIO_SetBits(GPIOA,GPIO_Pin_4)

#define OLED_CMD  0        //D′Ãüáî
#define OLED_DATA 1        //D′êy¾Y

extern  u16 BACK_COLOR, POINT_COLOR;   //±3¾°é«£¬»-±êé«

void Lcd_Init(void);
void LCD_Clear(u16 Color);
void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2);
void LCD_WR_DATA8(char da); //·¢Ëíêy¾Y-8λ2Îêy
void LCD_WR_DATA(int da);
void LCD_WR_REG(char da);

void LCD_DrawPoint(u16 x,u16 y);//»-μã
void LCD_DrawPoint_big(u16 x,u16 y);//»-ò»¸ö′óμã
u16  LCD_ReadPoint(u16 x,u16 y); //¶áμã
void Draw_Circle(u16 x0,u16 y0,u8 r);
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2);
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);                  
void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color);
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 mode);//ÏÔê¾ò»¸ö×Ö·û
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len);//ÏÔê¾êy×Ö
void LCD_Show2Num(u16 x,u16 y,u16 num,u8 len);//ÏÔê¾2¸öêy×Ö
void LCD_ShowString(u16 x,u16 y,const u8 *p);                 //ÏÔê¾ò»¸ö×Ö·û′®,16×Öìå

void showhanzi(unsigned int x,unsigned int y,unsigned char index);



//»-±êÑÕé«
#define WHITE                  0xFFFF
#define BLACK                  0x0000          
#define BLUE                  0x001F  
#define BRED             0XF81F
#define GRED                          0XFFE0
#define GBLUE                         0X07FF
#define RED                    0xF800
#define MAGENTA                0xF81F
#define GREEN                  0x07E0
#define CYAN                   0x7FFF
#define YELLOW                 0xFFE0
#define BROWN                          0XBC40 //רé«
#define BRRED                          0XFC07 //רoìé«
#define GRAY                           0X8430 //»òé«
//GUIÑÕé«

#define DARKBLUE               0X01CF        //éîà¶é«
#define LIGHTBLUE               0X7D7C        //Ç3à¶é«  
#define GRAYBLUE                0X5458 //»òà¶é«
//òÔéÏèyé«ÎaPANELμÄÑÕé«

#define LIGHTGREEN              0X841F //Ç3Âìé«
#define LGRAY                          0XC618 //Ç3»òé«(PANNEL),′°ìå±3¾°é«

#define LGRAYBLUE        0XA651 //Ç3»òà¶é«(ÖD¼ä2ãÑÕé«)
#define LBBLUE           0X2B12 //Ç3רà¶é«(Ñ¡ÔñìõÄ¿μÄ·′é«)


                                                           
#endif  
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2017-3-28
在线时间
19 小时
 楼主| 发表于 2018-6-27 08:46:51 | 显示全部楼层
正点原子 发表于 2018-6-27 02:13
无非是你的代码改变了IO配置,仿真,看SPI的配置是否随着OLED的初始化,变化了,很容易解决的问题

好的原子哥,仿真用的不熟练,我回头试试。 我昨天绕过了这个问题,解决办法就是不包含这个头文件,对于用到的变量和函数就进行extern声明,麻烦点,也先凑合用起来了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 08:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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