完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "bsp_Systick.h" u8 SPI_FLASH_SendByte(u8 byte,u8 dc); void LCD_Set_Pos(u8 x, u8 y); void SSD1306_init(); * @Brief SPI_FLASH初始化 * @retval 无 void SPI_FLASH_Init(void) SPI_InitTypeDef SPI_InitStructure; FLASH_SPI_APBxClock_FUN ( FLASH_SPI_CLK, ENABLE ); /* 使能SPI引脚相关的时钟 */ FLASH_SPI_MISO_PIN|FLASH_SPI_MOSI_PIN, ENABLE ); /* 配置SPI的 CS引脚,普通IO即可 */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(FLASH_SPI_CS_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = FLASH_SPI_DC_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = FLASH_SPI_RES_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 配置SPI的 SCK引脚*/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MISO_PIN; GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MOSI_PIN; SPI_FLASH_CS_HIGH(); // FLASH芯片 支持SPI模式0及模式3,据此设置CPOL CPHA SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_Init(FLASH_SPIx , &SPI_InitStructure); /* 使能 SPI */ void LCD_Set_Pos(u8 x, u8 y) SPI_FLASH_SendByte(0xb0+(y>>3),0); SPI_FLASH_SendByte((x&0x0f)|0x01,0); void LCD_Fill(u8 bmp_data) u8 y=0,x=0; for(y=0;y<8;y++) SPI_FLASH_SendByte(0xb0+y,0); SPI_FLASH_SendByte(0x10,0); SPI_FLASH_SendByte(bmp_data,1); } 3 * @brief 使用 SPI 发送一个字节的数据 5 * @retval 返回接收到的数据 u8 SPI_FLASH_SendByte(u8 byte,u8 dc) SPI_FLASH_CS_LOW(); if(dc=0) SPI_FLASH_DC_LOW(); else /* 写入数据寄存器,把要写入的数据写入发送缓冲区 */ /* 等待接收缓冲区非空,RXNE 事件 */ /* 读取数据寄存器,获取接收缓冲区数据 */ } void SSD1306_init() SPI_FLASH_RES_HIGH(); SysTick_Delay_Ms(100); SPI_FLASH_SendByte(0x00,0);//---set low column address SPI_FLASH_SendByte(0x40,0);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F) SPI_FLASH_SendByte(0xff,0); // Set SEG Output Current Brightness SPI_FLASH_SendByte(0xc8,0);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 SPI_FLASH_SendByte(0xa8,0);//--set multiplex ratio(1 to 64) SPI_FLASH_SendByte(0xd3,0);//-set display offset Shift Mapping RAM Counter (0x00~0x3F) SPI_FLASH_SendByte(0xd5,0);//--set display clock divide ratio/oscillator frequency SPI_FLASH_SendByte(0xd9,0);//--set pre-charge period SPI_FLASH_SendByte(0xda,0);//--set com pins hardware configuration SPI_FLASH_SendByte(0xdb,0);//--set vcomh SPI_FLASH_SendByte(0x20,0);//-Set Page Addressing Mode (0x00/0x01/0x02) SPI_FLASH_SendByte(0x8d,0);//--set Charge Pump enable/disable SPI_FLASH_SendByte(0xa4,0);// Disable Entire Display On (0xa4/0xa5) SPI_FLASH_SendByte(0xaf,0);//--turn on oled panel SPI_FLASH_SendByte(0xaf,0); LCD_Set_Pos(0,0); } void main(void){ SPI_FLASH_Init(); SSD1306_init(); while(1) { } } |
|
相关推荐
2个回答
|
|
找找例程吧,正点原子有例程
最佳答案
|
|
3 条评论
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
657 浏览 0 评论
2334 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2137 浏览 3 评论
4767 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2282 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 23:45 , Processed in 0.669008 second(s), Total 92, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号