SF1 RISC-V Core 驱动OLED屏幕 - RISC-V MCU技术社区 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 - 威廉希尔官方网站
分享 收藏 返回

SF1 RISC-V Core 驱动OLED屏幕

本帖最后由 EPTmachine 于 2023-6-17 22:41 编辑

1、外设
串口连接
  
SF1S60CG1121I引脚
  
  
串口引脚
  
  
IO_T3_3,CSN(A4)
  
  
SF1_UART_TX
  
  
IO_T5_3,GCLK0(E4)
  
  
SF1_UART_RX
  
通过扩展板上的OLED屏幕与SF1 Demo板的连接如下表所示
  
SF1S60CG1121I引脚
  
  
OLED引脚
  
  
IO_R10P_0,GCLK13,D0(A10)
  
  
DC
  
  
IO_R11P_0(B9)
  
  
RST
  
  
IO_R11N_0(B8)
  
  
SPI_MOSI
  
  
IO_R12P_0,GCLK14,USRCLK(A9)
  
  
SPI_SCK
  
LED威廉希尔官方网站 通过一个NMOS管控制,控制引脚输出高电平LED亮,低电平LED灭;LED控制引脚与FPGA管脚的映射关系为:
  
SF1S60CG121I 管脚位置
  
  
SF1S60CG121I 管脚名称
  
  
IO电源
  
  
指示灯IO
  
  
J4
  
  
IO_B6N_2,GCLK4
  
  
1.2V
  
  
LED_R
  
  
J5
  
  
IO_B6P_2,GCLK5
  
  
1.2V
  
  
LED_B
  
  
H5
  
  
IO_B7N_2
  
  
1.2V
  
  
LED_G
  
2、 OLED驱动移植
板上的OLED屏幕为中景园的OLED屏幕,官方已经提供了相关的屏幕驱动程序,我们只需要修改其中的DC、RST、SDA、SCL驱动对应的引脚驱动即可。具体的修改如下:
  1. #include \"nuclei_sdk_hal.h\"
  2. #define USE_HORIZONTAL 0   
  3. //-----------------OLED引脚驱动----------------
  4. #define OLED_SCL_Clr() gpio_write(GPIO,SOC_OLED_SCK_MASK,0)//SCL
  5. #define OLED_SCL_Set() gpio_write(GPIO,SOC_OLED_SCK_MASK,1)
  6. #define OLED_SDA_Clr() gpio_write(GPIO,SOC_OLED_SDA_MASK,0)//SDA
  7. #define OLED_SDA_Set() gpio_write(GPIO,SOC_OLED_SDA_MASK,1)
  8. #define OLED_RES_Clr() gpio_write(GPIO,SOC_OLED_RST_MASK,0)//RES
  9. #define OLED_RES_Set() gpio_write(GPIO,SOC_OLED_RST_MASK,1)
  10. #define OLED_DC_Clr() gpio_write(GPIO,SOC_OLED_DC_MASK,0)//DC
  11. #define OLED_DC_Set() gpio_write(GPIO,SOC_OLED_DC_MASK,1)
  12. #define OLED_CS_Clr()  do{}while(0)//CS
  13. #define OLED_CS_Set()  do{}while(0)
为了方便理解,定义相关的宏如下:
[code]#define SOC_OLED_DC_OFS                                7
#define SOC_OLED_RST_OFS                                4
#define SOC_OLED_SDA_OFS                                5
#define SOC_OLED_SCK_OFS                                6

#define SOC_OLED_DC_MASK                        (1<

更多回帖

×
发帖