你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32 NRF905 12864 SPI 8080

[复制链接]
xule 发布时间:2015-4-20 15:24
//-----------------并行 //SPI//模拟SPI//都有 #include "lcd12864.h" /****************************************/void LCD_IOinit_OUT(void)  {
  GPIO_InitTypeDef GPIO_InitStructure;   
        RCC_APB2PeriphClockCmd(GPIO  , ENABLE);           GPIO_InitStructure.GPIO_Pin =CS|RW|CLK|PSB|RST;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     
  GPIO_Init(LCD_IO, &GPIO_InitStructure);   
}    /********»ù±¾º¯Êý*********/ void LCD_Write(uint32_t cmd,uint8_t ddata)
{
uint32_t temp=cmd;
uint32_t i;
RESET(CS);  
temp|=((uint32_t)(ddata&(uint8_t)0xf0)<<16)+((uint32_t)(ddata&(uint8_t)0x0f)<<12);
SET(CS);
for(i=0;i<24;i++)
{   if(temp&0x80000000)SET(RW);    else RESET(RW);    SET(CLK);   delay_ms(1);   RESET(CLK);    temp=temp<<1;
}
RESET(CS);  
}    u32 ReaddDate ;          u8  ReaddDatebit=0;          u8 J=0;


/**************/void Display(uint8_t addr,uint8_t *Chinese) {    LCD_Write(CMD,addr);    delay_us(100);    while(*Chinese!='\0')    {     LCD_Write(DATE,*Chinese);     Chinese++;     delay_ms(1);    } }



/*******ÔÚÖ¸¶¨Î»ÖÃÏÔʾ×Ö·û´®***************/  
void LCD_Show_String_On_Position(u8 y,u8  x, u8  *adata){ u8 address; u8 i=0; switch (y) {  case 1:address=0x80+x;break;  case 2:address=0x90+x;break;  case 3:address=0x88+x;break;  case 4:address=0x98+x;break;  default:break; } LCD_Write(CMD,address); while(*(adata+i)) {  LCD_Write(DATE,*(adata+i));        i++; }}/****************************/ void LCD_ShowNum(u8 y,u8  x,u16 num ){         u8 address;   u8 i=0;         u8  str[5];         u8 shi,ge,bai ,qian; switch (y) {  case 1:address=0x80+x;break;  case 2:address=0x90+x;break;  case 3:address=0x88+x;break;  case 4:address=0x98+x;break;  default:break; } LCD_Write(CMD,address); if(num>10000) { num=0;} else num=num;  qian=num/1000;  bai=(num-qian*1000)/100;  shi=(num-bai*100-qian*1000)/10;  ge=num%10;  str[0]=qian+'0';  str[1]=bai+'0';  str[2]=shi+'0';  str[3]='.';  str[4]=ge+'0'; if(qian==0) {           if (bai==0)        {                   if(shi==0)                 {                        for(i=2;i<5;i++)                  LCD_Write(DATE,*(str+i));                  }                                  else                           for(i=2;i<5;i++)                  LCD_Write(DATE,*(str+i));   }          if(bai!=0)        {                     for(i=1;i<5;i++)                   LCD_Write(DATE,*(str+i));         }}else   for(i=0;i<5;i++)                 LCD_Write(DATE,*(str+i));
}/************³õʼ»¯LCDµÄÅäÖÃ******************/void LCD_Init(void)
{            LCD_IOinit_OUT();                 RESET(CS);                  RESET(PSB);                  RESET(RST);                  delay_ms(1);                  SET(RST);                  delay_ms(1);                  LCD_Write(CMD,0x30);                  delay_ms(1);                  LCD_Write(CMD,0x0c);                  delay_ms(10);                  LCD_Write(CMD,0x01);                     delay_ms(1);      LCD_Write(CMD,0X04);                 delay_ms(1);                  LCD_Write(CMD,0x06);                       delay_ms(1);      }  //==============================================================#include "SPI_LCD.h"#include "spi.h"void SPI_LCD_Config(void){  GPIO_InitTypeDef GPIO_InitStructure;   
        RCC_APB2PeriphClockCmd(GPIO,ENABLE);           GPIO_InitStructure.GPIO_Pin =CS |PSB|RST;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     
  GPIO_Init(LCD_IO, &GPIO_InitStructure);                    SPI2_Init();
}
void LCD_Write(uint8_t cmd,uint8_t ddata) {  RESET(CS);   SET(CS);  SPI2_WriteByte(cmd); SPI2_WriteByte(ddata&0xf0); SPI2_WriteByte((ddata&0x0f)<<4); RESET(CS);  }
  
void LCD_Show_String_On_Position(u8 y,u8  x, u8  *adata){ u8 address; u8 i=0; switch (y) {  case 1:address=0x80+x;break;  case 2:address=0x90+x;break;  case 3:address=0x88+x;break;  case 4:address=0x98+x;break;  default:break; } LCD_Write(CMD,address); while(*(adata+i)) {  LCD_Write(DATE,*(adata+i));        i++; } } void SPI_LCD_Init(void)
{            SPI_LCD_Config();                 RESET(CS);                  RESET(PSB);                  RESET(RST);                  delay_ms(1);                  SET(RST);                  delay_ms(1);                  LCD_Write(CMD,0x30);                  delay_ms(1);                  LCD_Write(CMD,0x0c);                  delay_ms(10);                  LCD_Write(CMD,0x01);                     delay_ms(1);      LCD_Write(CMD,0X04);                 delay_ms(1);                  LCD_Write(CMD,0x06);                       delay_ms(1);      }  

收藏 评论6 发布时间:2015-4-20 15:24

举报

6个回答
1407W 回答时间:2015-5-6 16:20:21
此帖仅作者可见
拼命三郎 回答时间:2015-4-21 10:01:07
此帖仅作者可见
拼命三郎 回答时间:2015-4-21 10:00:52
此帖仅作者可见
wamcncn 回答时间:2015-4-20 21:26:45
此帖仅作者可见
wyxy163@126.com 回答时间:2015-4-20 15:43:58
提示: 作者被禁止或删除 内容自动屏蔽
xule 回答时间:2015-4-20 15:25:41
此帖仅作者可见

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版