野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1711|回复: 1

野火RA6M5开发板 IIC-OLED测试学习

[复制链接]
发表于 2023-5-12 23:04:02 | 显示全部楼层 |阅读模式
野火RA6M5开发板 IIC-OLED测试学习
野火RA6M5开发板,这里我使用的时SCI模块里面的SCL5 SDA5 ,配置引脚为P805,P513,配置的过程主要是在官方的e2studio去配置的,简单的点几下就可以了
具体参考下面的博客


\

野火RA6M5开发板上的外部高速晶振为24M.
clk.jpg
由于我的jlink版本不支持Cortex-M33内核的芯片下载,现在只能通过Uart串口烧写,开发文档上面也有具体的操作
瑞萨开发板通过Uart串口烧写程序参考博文 https://bbs.elecfans.com/jishu_2322246_1_1.html
hex.jpg
IIC配置 参考文章 瑞萨e2studio-IIC-12864OLED移植 https://blog.csdn.net/qq_24312945/article/details/121373564
野火RA6M5开发板,这里我使用的时SCI模块里面的SCL5 SDA5 ,配置引脚为P805,P513
iic配置.jpg
  1. //==================================================================================================
  2. //  实现功能: 0.96寸OLED 接口演示例程
  3. //  说明:
  4. //              GND   电源地
  5. //              VCC   接5V或3.3v电源
  6. //              SCL   接P513(SCL5)
  7. //              SDA   接P805(SDA5)
  8. //==================================================================================================------------------------------------------------------------------------
  9. //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9
  10. //==================================================================================================
  11. //==================================================================================================
  12. #include "oled.h"
  13. #include "stdlib.h"
  14. #include "oledfont.h"
  15. #include "math.h"
  16. #include "hal_data.h"


  17. extern fsp_err_t err;
  18. extern int  timeout_ms;
  19. extern  i2c_master_event_t i2c_event ;
  20. //OLED的显存
  21. //存放格式如下.
  22. //[0]0 1 2 3 ... 127
  23. //[1]0 1 2 3 ... 127
  24. //[2]0 1 2 3 ... 127
  25. //[3]0 1 2 3 ... 127
  26. //[4]0 1 2 3 ... 127
  27. //[5]0 1 2 3 ... 127
  28. //[6]0 1 2 3 ... 127
  29. //[7]0 1 2 3 ... 127

  30. //==================================================================================================
  31. //  函数功能: IIC外设驱动函数部分
  32. //  函数标记: Write_IIC_Command
  33. //  函数说明: 无
  34. //-------------------------------------------------------------------------------------------------
  35. //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9
  36. //==================================================================================================
  37. void Write_IIC_Command(unsigned char IIC_Command)
  38. {

  39.     uint8_t ii[2]={0x00,0x00};
  40.     ii[1] = IIC_Command;

  41.     err = R_SCI_I2C_Write(&g_i2c5_ctrl, ii, 0x02, true);
  42.     assert(FSP_SUCCESS == err);
  43.     /* Since there is nothing else to do, block until Callback triggers*/
  44.     //while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms)
  45.     while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
  46.     {
  47.         R_BSP_SoftwareDelay(100U, BSP_DELAY_UNITS_MICROSECONDS);
  48.         timeout_ms--;
  49.     }
  50.     if (I2C_MASTER_EVENT_ABORTED == i2c_event)
  51.     {
  52.         __BKPT(0);
  53.     }
  54.     /* Read data back from the I2C slave */
  55.     i2c_event = I2C_MASTER_EVENT_ABORTED;
  56.     timeout_ms           = 100000;
  57. }

  58. //==================================================================================================
  59. //  函数功能: IIC外设驱动函数部分
  60. //  函数标记: Write_IIC_Data
  61. //  函数说明: 无
  62. //-------------------------------------------------------------------------------------------------
  63. //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9
  64. //==================================================================================================
  65. void Write_IIC_Data(unsigned char IIC_Data)
  66. {
  67.     uint8_t ii[2]={0x40,0x00};
  68.     ii[0] = 0x40;
  69.     ii[1] = IIC_Data;
  70.     err = R_SCI_I2C_Write(&g_i2c5_ctrl, ii, 0x02, true);
  71.            assert(FSP_SUCCESS == err);
  72.            /* Since there is nothing else to do, block until Callback triggers*/
  73.            //while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms)
  74.     while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
  75.     {
  76.         R_BSP_SoftwareDelay(100U, BSP_DELAY_UNITS_MICROSECONDS);
  77.         timeout_ms--;
  78.     }
  79.     if (I2C_MASTER_EVENT_ABORTED == i2c_event)
  80.     {
  81.         __BKPT(0);
  82.     }
  83.     /* Read data back from the I2C slave */
  84.     i2c_event = I2C_MASTER_EVENT_ABORTED;
  85.     timeout_ms           = 100000;

  86. }
  87. //==================================================================================================
  88. //  函数功能: IIC外设驱动函数部分
  89. //  函数标记: Write_IIC_Data
  90. //  函数说明: 无
  91. //-------------------------------------------------------------------------------------------------
  92. //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9
  93. //==================================================================================================
  94. void OLED_WR_Byte(unsigned dat,unsigned cmd)
  95. {
  96.     if(cmd)
  97.     {
  98.         Write_IIC_Data(dat);
  99.     }
  100.     else
  101.     {
  102.         Write_IIC_Command(dat);
  103.     }


  104. }
  105. /********************************************
  106. // fill_Picture
  107. ********************************************/
  108. void fill_picture(unsigned char fill_Data)
  109. {
  110.     unsigned char m,n;
  111.     for(m=0;m<8;m++)
  112.     {
  113.         OLED_WR_Byte(0xb0+m,0);     //page0-page1
  114.         OLED_WR_Byte(0x00,0);       //low column start address
  115.         OLED_WR_Byte(0x10,0);       //high column start address
  116.         for(n=0;n<128;n++)
  117.             {
  118.                 OLED_WR_Byte(fill_Data,1);
  119.             }
  120.     }
  121. }


  122. /***********************Delay****************************************/
  123. void Delay_50ms(unsigned int Del_50ms)
  124. {
  125.     unsigned int m;
  126.     for(;Del_50ms>0;Del_50ms--)
  127.         for(m=6245;m>0;m--);
  128. }

  129. void Delay_1ms(unsigned int Del_1ms)
  130. {
  131.     unsigned char j;
  132.     while(Del_1ms--)
  133.     {
  134.         for(j=0;j<123;j++);
  135.     }
  136. }

  137. //坐标设置

  138. void OLED_Set_Pos(unsigned char x, unsigned char y)
  139. {   OLED_WR_Byte(0xb0+y,OLED_CMD);
  140.     OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
  141.     OLED_WR_Byte((x&0x0f),OLED_CMD);
  142. }
  143. //开启OLED显示
  144. void OLED_Display_On(void)
  145. {
  146.     OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
  147.     OLED_WR_Byte(0X14,OLED_CMD);  //DCDC ON
  148.     OLED_WR_Byte(0XAF,OLED_CMD);  //DISPLAY ON
  149. }
  150. //关闭OLED显示
  151. void OLED_Display_Off(void)
  152. {
  153.     OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令
  154.     OLED_WR_Byte(0X10,OLED_CMD);  //DCDC OFF
  155.     OLED_WR_Byte(0XAE,OLED_CMD);  //DISPLAY OFF
  156. }
  157. //清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!
  158. void OLED_Clear(void)
  159. {
  160.     u8 i,n;
  161.     for(i=0;i<8;i++)
  162.     {
  163.         OLED_WR_Byte(0xb0+i,OLED_CMD);    //设置页地址(0~7)
  164.         OLED_WR_Byte(0x00,OLED_CMD);      //设置显示位置—列低地址
  165.         OLED_WR_Byte(0x10,OLED_CMD);      //设置显示位置—列高地址
  166.         for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);
  167.     } //更新显示
  168. }
  169. void OLED_On(void)
  170. {
  171.     u8 i,n;
  172.     for(i=0;i<8;i++)
  173.     {
  174.         OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)
  175.         OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址
  176.         OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址
  177.         for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA);
  178.     } //更新显示
  179. }
  180. //在指定位置显示一个字符,包括部分字符
  181. //x:0~127
  182. //y:0~63
  183. //mode:0,反白显示;1,正常显示
  184. //size:选择字体 16/12
  185. void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)
  186. {
  187.     unsigned char c=0,i=0;
  188.         c=chr-' ';//得到偏移后的值
  189.         if(x>Max_Column-1){x=0;y=y+2;}
  190.         if(Char_Size ==16)
  191.             {
  192.                 OLED_Set_Pos(x,y);
  193.                 for(i=0;i<8;i++)
  194.                     OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
  195.                     OLED_Set_Pos(x,y+1);
  196.                     for(i=0;i<8;i++)
  197.                         OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
  198.             }
  199.             else {
  200.                 OLED_Set_Pos(x,y);
  201.                 for(i=0;i<6;i++)
  202.                 OLED_WR_Byte(F6x8[c][i],OLED_DATA);

  203.             }
  204. }
  205. //m^n函数
  206. u32 oled_pow(u8 m,u8 n)
  207. {
  208.     u32 result=1;
  209.     while(n--)result*=m;
  210.     return result;
  211. }
  212. //显示2个数字
  213. //x,y :起点坐标
  214. //len :数字的位数
  215. //size:字体大小
  216. //mode:模式   0,填充模式;1,叠加模式
  217. //num:数值(0~4294967295);
  218. void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)
  219. {
  220.     u8 t,temp;
  221.     u8 enshow=0;
  222.     for(t=0;t<len;t++)
  223.     {
  224.         temp=(num/oled_pow(10,len-t-1))%10;
  225.         if(enshow==0&&t<(len-1))
  226.         {
  227.             if(temp==0)
  228.             {
  229.                 OLED_ShowChar(x+(size2/2)*t,y,' ',size2);
  230.                 continue;
  231.             }else enshow=1;

  232.         }
  233.         OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2);
  234.     }
  235. }
  236. //显示一个字符号串
  237. void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)
  238. {
  239.     unsigned char j=0;
  240.     while (chr[j]!='\0')
  241.     {       OLED_ShowChar(x,y,chr[j],Char_Size);
  242.             x+=8;
  243.         if(x>120){x=0;y+=2;}
  244.             j++;
  245.     }
  246. }
  247. //显示汉字
  248. void OLED_ShowCHinese(u8 x,u8 y,u8 no)
  249. {
  250.     u8 t,adder=0;
  251.     OLED_Set_Pos(x,y);
  252.     for(t=0;t<16;t++)
  253.         {
  254.                 OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
  255.                 adder+=1;
  256.      }
  257.         OLED_Set_Pos(x,y+1);
  258.     for(t=0;t<16;t++)
  259.             {
  260.                 OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
  261.                 adder+=1;
  262.       }
  263. }
  264. /***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
  265. void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
  266. {
  267. unsigned int j=0;
  268. unsigned char x,y;

  269.   if(y1%8==0) y=y1/8;
  270.   else y=y1/8+1;
  271.     for(y=y0;y<y1;y++)
  272.     {
  273.         OLED_Set_Pos(x0,y);
  274.     for(x=x0;x<x1;x++)
  275.         {
  276.             OLED_WR_Byte(BMP[j++],OLED_DATA);
  277.         }
  278.     }
  279. }

  280. //初始化SSD1306
  281. void OLED_Init(void)
  282. {

  283. //    GPIO_InitTypeDef  GPIO_InitStructure;
  284. //
  285. //
  286. //    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);    //使能A端口时钟
  287. //    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_7;
  288. //    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽输出
  289. //    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
  290. //    GPIO_Init(GPIOA, &GPIO_InitStructure);    //初始化GPIOD3,6
  291. //    GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7);


  292. //delay_ms(800);


  293.     /* Wait for minimum time required between transfers. */
  294.     R_BSP_SoftwareDelay(800, BSP_DELAY_UNITS_MICROSECONDS);

  295. OLED_WR_Byte(0xAE,OLED_CMD);//--display off
  296.     OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
  297.     OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
  298.     OLED_WR_Byte(0x40,OLED_CMD);//--set start line address
  299.     OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
  300.     OLED_WR_Byte(0x81,OLED_CMD); // contract control
  301.     OLED_WR_Byte(0xFF,OLED_CMD);//--128
  302.     OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
  303.     OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
  304.     OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  305.     OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
  306.     OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
  307.     OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
  308.     OLED_WR_Byte(0x00,OLED_CMD);//

  309.     OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
  310.     OLED_WR_Byte(0x80,OLED_CMD);//

  311.     OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
  312.     OLED_WR_Byte(0x05,OLED_CMD);//

  313.     OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
  314.     OLED_WR_Byte(0xF1,OLED_CMD);//

  315.     OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
  316.     OLED_WR_Byte(0x12,OLED_CMD);//

  317.     OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
  318.     OLED_WR_Byte(0x30,OLED_CMD);//

  319.     OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
  320.     OLED_WR_Byte(0x14,OLED_CMD);//

  321.     OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
  322. }
复制代码
  1. /*
  2. * oled.h
  3. *
  4. *  Created on: 2023年1月31日
  5. *      Author: a8456
  6. */

  7. #ifndef OLED_H_
  8. #define OLED_H_
  9. #include "stdlib.h"
  10. #include "stdint.h"
  11. #define OLED_MODE 0

  12. #define XLevelL     0x00
  13. #define XLevelH     0x10
  14. #define Max_Column  128
  15. #define Max_Row     64
  16. #define Brightness  0xFF
  17. #define X_WIDTH     128
  18. #define Y_WIDTH     64


  19. #define OLED_CMD  0 //写命令
  20. #define OLED_DATA 1 //写数据

  21. typedef __uint8_t u8 ;
  22. typedef __uint32_t u32 ;


  23. //OLED控制用函数
  24. void OLED_WR_Byte(unsigned dat,unsigned cmd);
  25. void OLED_Display_On(void);
  26. void OLED_Display_Off(void);
  27. void OLED_Init(void);
  28. void OLED_Clear(void);
  29. void OLED_DrawPoint(u8 x,u8 y,u8 t);
  30. void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);
  31. void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size);
  32. void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size);
  33. void OLED_ShowString(u8 x,u8 y, u8 *p,u8 Char_Size);
  34. void OLED_Set_Pos(unsigned char x, unsigned char y);
  35. void OLED_ShowCHinese(u8 x,u8 y,u8 no);
  36. void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);
  37. void Delay_50ms(unsigned int Del_50ms);
  38. void Delay_1ms(unsigned int Del_1ms);
  39. void fill_picture(unsigned char fill_Data);
  40. void Picture();
  41. void IIC_Start();
  42. void IIC_Stop();
  43. void Write_IIC_Command(unsigned char IIC_Command);
  44. void Write_IIC_Data(unsigned char IIC_Data);
  45. void Write_IIC_Byte(unsigned char IIC_Byte);

  46. void IIC_Wait_Ack();
  47. #endif /* OLED_H_ */
复制代码
  1. /*
  2. * oledfont.h
  3. *
  4. *  Created on: 2023年1月31日
  5. *      Author: a8456
  6. */

  7. #ifndef OLEDFONT_H_
  8. #define OLEDFONT_H_

  9. //常用ASCII表
  10. //偏移量32
  11. //ASCII字符集
  12. //偏移量32
  13. //大小:12*6
  14. /************************************6*8的点阵************************************/
  15. const unsigned char F6x8[][6] =
  16. {
  17. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
  18. 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
  19. 0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
  20. 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
  21. 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
  22. 0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
  23. 0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
  24. 0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
  25. 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
  26. 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
  27. 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
  28. 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
  29. 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
  30. 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
  31. 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
  32. 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
  33. 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
  34. 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
  35. 0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
  36. 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
  37. 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
  38. 0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
  39. 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
  40. 0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
  41. 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
  42. 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
  43. 0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
  44. 0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
  45. 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
  46. 0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
  47. 0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
  48. 0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
  49. 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
  50. 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
  51. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
  52. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
  53. 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
  54. 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
  55. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
  56. 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
  57. 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
  58. 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
  59. 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
  60. 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
  61. 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
  62. 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
  63. 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
  64. 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
  65. 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
  66. 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
  67. 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
  68. 0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
  69. 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
  70. 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
  71. 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
  72. 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
  73. 0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
  74. 0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
  75. 0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
  76. 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
  77. 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
  78. 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
  79. 0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
  80. 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
  81. 0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
  82. 0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
  83. 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
  84. 0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
  85. 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
  86. 0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
  87. 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
  88. 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
  89. 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
  90. 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
  91. 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
  92. 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
  93. 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
  94. 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
  95. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
  96. 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
  97. 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
  98. 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
  99. 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
  100. 0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
  101. 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
  102. 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
  103. 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
  104. 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
  105. 0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
  106. 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
  107. 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
  108. 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
  109. };
  110. /****************************************8*16的点阵************************************/
  111. const unsigned char F8X16[]=
  112. {
  113.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  114.   0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
  115.   0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
  116.   0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
  117.   0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
  118.   0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
  119.   0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
  120.   0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
  121.   0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
  122.   0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
  123.   0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
  124.   0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
  125.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
  126.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
  127.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
  128.   0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
  129.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
  130.   0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
  131.   0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
  132.   0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
  133.   0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
  134.   0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
  135.   0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
  136.   0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
  137.   0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
  138.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
  139.   0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
  140.   0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
  141.   0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
  142.   0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
  143.   0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
  144.   0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
  145.   0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//[url=home.php?mod=space&uid=5830]@[/url] 32
  146.   0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
  147.   0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
  148.   0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
  149.   0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
  150.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
  151.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
  152.   0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
  153.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
  154.   0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
  155.   0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
  156.   0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
  157.   0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
  158.   0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
  159.   0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
  160.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
  161.   0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
  162.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
  163.   0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
  164.   0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
  165.   0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
  166.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
  167.   0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
  168.   0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
  169.   0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
  170.   0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
  171.   0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
  172.   0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
  173.   0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
  174.   0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
  175.   0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
  176.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
  177.   0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
  178.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
  179.   0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
  180.   0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
  181.   0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
  182.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
  183.   0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
  184.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
  185.   0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
  186.   0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
  187.   0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
  188.   0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
  189.   0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
  190.   0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
  191.   0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
  192.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
  193.   0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
  194.   0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
  195.   0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
  196.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
  197.   0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
  198.   0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
  199.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
  200.   0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
  201.   0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
  202.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
  203.   0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
  204.   0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
  205.   0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
  206.   0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
  207.   0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
  208. };
  209. char Hzk[][32]={
  210. // 瑞(0) 萨(1) 年(2) 月(3) 日(4) 电(5)子(6)

  211. {0x84,0x84,0xFC,0x84,0x84,0x40,0x5E,0x50,0x50,0x50,0xDF,0x50,0x50,0x50,0x5E,0x00},
  212. {0x10,0x30,0x1F,0x08,0x08,0x00,0xFE,0x02,0x02,0x7F,0x02,0x7E,0x02,0x82,0xFE,0x00},/*"瑞",0*/
  213. /* (16 X 16 , 宋体 )*/

  214. {0x04,0xE4,0x24,0x24,0xA4,0x6F,0x04,0x24,0x64,0xAF,0x34,0xA4,0x64,0x24,0x04,0x00},
  215. {0x00,0xFF,0x00,0x11,0x22,0x9C,0x40,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00},/*"萨",1*/
  216. /* (16 X 16 , 宋体 )*/

  217. {0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00},
  218. {0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"年",2*/
  219. /* (16 X 16 , 宋体 )*/

  220. {0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00},
  221. {0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},/*"月",3*/
  222. /* (16 X 16 , 宋体 )*/

  223. {0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00},
  224. {0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*"日",4*/
  225. /* (16 X 16 , 宋体 )*/

  226. {0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00},
  227. {0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"电",5*/
  228. /* (16 X 16 , 宋体 )*/

  229. {0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00},
  230. {0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"子",6*
  231. /* (16 X 16 , 宋体 )*/

  232. };

  233. #endif /* OLEDFONT_H_ */
复制代码

  1. //--------------------------------------------------------------------------------------------------
  2. // 函数头文件    |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9
  3. //--------------------------------------------------------------------------------------------------
  4. #include "hal_data.h"
  5. #include "oled.h"
  6. #include "bmp.h"
  7. #include "bsp_debug_uart.h"
  8. #include "bsp_led.h"
  9. FSP_CPP_HEADER
  10. void R_BSP_WarmStart(bsp_warm_start_event_t event);
  11. FSP_CPP_FOOTER

  12. /* Callback function */
  13. i2c_master_event_t i2c_event = I2C_MASTER_EVENT_ABORTED;
  14. void sci_i2c_master_callback(i2c_master_callback_args_t *p_args)
  15. {
  16.     i2c_event = I2C_MASTER_EVENT_ABORTED;
  17.     if (NULL != p_args)
  18.     {
  19.         /* capture callback event for validating the i2c transfer event*/
  20.         i2c_event = p_args->event;
  21.     }

  22. }

  23. fsp_err_t err = FSP_SUCCESS;
  24. uint32_t  timeout_ms = 1000;


  25. void Hardware_init(void)
  26. {


  27.             Debug_UART4_Init(); // SCI4 UART 调试串口初始化
  28.             printf("Debug-UART4-Init OK \r\n");
  29.             LED_Init();
  30.             printf("LED_Init    OK \r\n");
  31.             printf("IIC-Config  OK \r\n");
  32.             /* Initialize the I2C module */
  33.             err = R_SCI_I2C_Open(&g_i2c5_ctrl, &g_i2c5_cfg);
  34.             /* Handle any errors. This function should be defined by the user. */
  35.             assert(FSP_SUCCESS == err);
  36.             printf("IIC-Config OK \r\n");
  37.             OLED_Init();            //初始化OLED
  38.             OLED_Clear();
  39.             printf("oled-Init OK \r\n");
  40. }
  41. //==================================================================================================
  42. //  函数说明: 主函数入口
  43. //  函数备注: hal_entry
  44. //--------------------------------------------------------------------------------------------------
  45. //  |   -   |   -   |   0   |   1   |   2   |   3   |   4   |   5   |   6   |   7   |   8   |   9
  46. //==================================================================================================

  47. /*******************************************************************************************************************//**
  48. * main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used.  This function
  49. * is called by main() when no RTOS is used.
  50. **********************************************************************************************************************/
  51. void hal_entry(void)
  52. {
  53.     /* TODO: add your own code here */

  54.           Hardware_init();
  55.           printf("RA6M5-Board-Init OK \r\n");


  56.           while(1)
  57.           {
  58.                 LED1_ON; // LED1亮
  59.                 LED2_ON; // LED2亮
  60.                 LED3_ON; // LED3亮
  61.                 R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); //延时1秒
  62.                 LED1_OFF; // LED1灭
  63.                 LED2_OFF; // LED2灭
  64.                 LED3_OFF; // LED3灭
  65.                 R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); //延时1秒
  66.   

  67.                  printf("oled-Init OK \r\n");
  68.                  OLED_ShowCHinese(0,0,0);//记
  69.                  OLED_ShowCHinese(16,0,1);//帖
  70.                  OLED_ShowCHinese(32,0,5);//电
  71.                  OLED_ShowCHinese(48,0,6);//子
  72.                  OLED_ShowString(60,0,"Renesas",16);
  73.                  OLED_ShowNum(0,2,2023,4,16);//显示ASCII字符的码值
  74.                  OLED_ShowCHinese(32,2,2);//中文字->年
  75.                  OLED_ShowNum(48,2,5,2,16);//显示ASCII字符的码值
  76.                  OLED_ShowCHinese(64,2,3);//中文字->月
  77.                  OLED_ShowNum(80,2,12,2,16);//显示ASCII字符的码值
  78.                  OLED_ShowCHinese(96,2,4);//中文字->日
  79.                  OLED_ShowString(0,4,"By2023-CoderEnd",12);
  80.                  OLED_ShowString(0,5,"Embedfire-Board",12);
  81.                  OLED_ShowString(0,6,"R7FA6M5BH3CFC",16);

  82.                   R_BSP_SoftwareDelay(4, BSP_DELAY_UNITS_SECONDS); //延时1秒
  83.                   OLED_Clear();
  84.                   OLED_DrawBMP(0,0,64,8,BMP1);
  85.                   R_BSP_SoftwareDelay(4, BSP_DELAY_UNITS_SECONDS); //延时1秒
  86.                   OLED_Clear();

  87.           }



  88. #if BSP_TZ_SECURE_BUILD
  89.     /* Enter non-secure code */
  90.     R_BSP_NonSecureEnter();
  91. #endif
  92. }

  93. /*******************************************************************************************************************//**
  94. * This function is called at various points during the startup process.  This implementation uses the event that is
  95. * called right before main() to set up the pins.
  96. *
  97. * @param[in]  event    Where at in the start up process the code is currently at
  98. **********************************************************************************************************************/
  99. void R_BSP_WarmStart(bsp_warm_start_event_t event)
  100. {
  101.     if (BSP_WARM_START_RESET == event)
  102.     {
  103. #if BSP_FEATURE_FLASH_LP_VERSION != 0

  104.         /* Enable reading from data flash. */
  105.         R_FACI_LP->DFLCTL = 1U;

  106.         /* Would normally have to wait tDSTOP(6us) for data flash recovery. Placing the enable here, before clock and
  107.          * C runtime initialization, should negate the need for a delay since the initialization will typically take more than 6us. */
  108. #endif
  109.     }

  110.     if (BSP_WARM_START_POST_C == event)
  111.     {
  112.         /* C runtime environment and system clocks are setup. */

  113.         /* Configure pins. */
  114.         R_IOPORT_Open (&g_ioport_ctrl, g_ioport.p_cfg);
  115.     }
  116. }

  117. #if BSP_TZ_SECURE_BUILD

  118. BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable ();

  119. /* Trustzone Secure Projects require at least one nonsecure callable function in order to build (Remove this if it is not required to build). */
  120. BSP_CMSE_NONSECURE_ENTRY void template_nonsecure_callable ()
  121. {

  122. }
  123. #endif
复制代码

开发板测试效果
oled.jpg
oled2.jpg


野火论坛202305122253592622..png

RA6M5-IIC-OLED.zip

11.32 KB, 下载次数: 18

回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-3 07:02 , Processed in 0.042464 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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