本帖最后由 wind_west 于 2019-9-14 11:19 编辑

    在东芝TT_M3HQ开发板试用体验过程中,发现开发板的程序编译和下载方式相当丰富。经过几次尝试后,最后还是使用MDK5比较顺手。 工程使用的工程文件下载,详见:【东芝TT_M3HQ开发板试用体验】02.开箱测试工程中用到的延时函数采用咱们这次试用的帖子:《东芝TT_M3HQ开发板试用体验》 01.开箱测试之串口控制LED。OLED使用的是中景园电子的 0.96 寸 OLED 显示屏。接线方式(模块---MCU):GND---GND,VCC---VCC3.3,SCL----PV2,SDA---PV4。
现在截取两张硬件的示意图如下
图1.JPG

图2.JPG

1、移植驱动文件
    OLED的驱动移植为了方便,采用厂商提供的模拟I2C方式。复制驱动文件到工程目录下,同时在MDK里面添加相关的组。相关的文件复制完成后,在MDK里面设置文件的包含路径。然后,就是在使用的文件里,添加头文件。
效果如图:
图3.JPG
图4.JPG
2、在main()中添加业务执行逻辑
    在main函数中添加执行逻辑:
while(1)
{
  OLED_ShowPicture(0,0,128,8,BMP1);
  delay_ms(500);
    OLED_Clear();
  My_OLED_ShowChinese(0,0,Dong_Zhi_Board,0,16);//中
  My_OLED_ShowChinese(18,0,Dong_Zhi_Board,1,16);//中
  My_OLED_ShowChinese(36,0,Dong_Zhi_Board,2,16);//中
  My_OLED_ShowChinese(54,0,Dong_Zhi_Board,3,16);//中
  My_OLED_ShowChinese(72,0,Dong_Zhi_Board,4,16);//中
  
  
  OLED_ShowString(8,16,"TMPM3HQ",16);
  OLED_ShowString(20,32,"2019/05/01",16);
  OLED_ShowString(0,48,"ASCII:",16);  
  OLED_ShowString(63,48,"CODE:",16);
  OLED_ShowChar(48,48,t,16);//显示ASCII字符   
  t++;
  if(t>'~')t=' ';
  OLED_ShowNum(103,48,t,3,16);
  OLED_Refresh();
  delay_ms(5000);
}
在while(1)之前,初始化OLED屏,调用了OLED_Init()。这个函数先前是依据STM32写的驱动,初始化GPIO,所以在这里更改一下:
static gpio_t myport_use;     /*!< Port driver instance. */
static gpio_t system_port_init;     /*!< Port driver instance. */

//oled的GPIO初始化
  system_port_init.p_pv_instance = TSB_PV;
  if (gpio_init(&system_port_init, GPIO_PORT_V) != TXZ_SUCCESS)
  {

  }
  if (gpio_func(&system_port_init, GPIO_PORT_V, GPIO_PORT_2, (uint32_t)GPIO_PV2_OUTPUT, GPIO_PIN_INOUT) != TXZ_SUCCESS)
  {
  }
  if (gpio_func(&system_port_init, GPIO_PORT_V, GPIO_PORT_4, (uint32_t)GPIO_PV4_OUTPUT, GPIO_PIN_INOUT) != TXZ_SUCCESS)
  {
  }
注意:这段代码提取自bsp_initialize()。如图:
图6.JPG

图5.JPG

最后,更新底层的驱动宏定义:
//-----------------OLED端口定义----------------
static gpio_t led_port;     /*!< Port driver instance. */
#define OLED_SCLK_Clr() (gpio_write_bit(&led_port,GPIO_PORT_V,GPIO_PORT_2,GPIO_Mode_DATA,GPIO_PIN_RESET))//SCL IIC接口的时钟信号
#define OLED_SCLK_Set() (gpio_write_bit(&led_port,GPIO_PORT_V,GPIO_PORT_2,GPIO_Mode_DATA,GPIO_PIN_SET))//SCL IIC接口的时钟信号
#define OLED_SDIN_Clr() gpio_write_bit(&led_port,GPIO_PORT_V, GPIO_PORT_4, GPIO_Mode_DATA, GPIO_PIN_RESET)//
#define OLED_SDIN_Set() gpio_write_bit(&led_port,GPIO_PORT_V, GPIO_PORT_4, GPIO_Mode_DATA, GPIO_PIN_SET)//

谢谢大家的阅读,底部奉上附件:
工程文件.zip (1.88 MB, 下载次数: 0)
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
请点击举报理由
关闭 站长推荐上一条 /2 下一条
  • 返回顶部