本帖最后由 Children 于 2025-2-17 20:28 编辑

FR3068E-C芯片架构属于双核架构,包括一颗独立的蓝牙核做蓝牙通讯以及另外一颗主核MCU,双核之间通过串口做HCI通讯,蓝牙核一般不对外开放,用户无需关注 内置128KB CRAM+512KB SRAM,2MB flash(根据芯片型号有不同大小配置)需外挂24MHZ晶体时钟,系统主频最高可倍频至156MHZ工作温度为工业级-40°~105° 有57个可编程IO(不同型号/封装会有所不同)支持两路CAN总线,支持CAN FD支持丰富的外设总线如SPI/UART/USB等支持双模蓝牙BLE+BT/EDR。

作为小白,拿到开发板最喜欢的就是跑外设了。官方配套的SDK对外设的Demo提供的都比较全面,结合各位大神发出的开发环境配置帖子,很快上手了这块开发板。

若想驱动OLED屏,可从淘宝或者其他途径要到一份驱动源码,以下是对I2C驱动的配置和对OLED驱动的修改,在网上找到的配套OLED驱动所使用的是模拟IIC,因此我们需要定位到OLED驱动使用IIC发送数据的接口,那便是以下代码中OLED写字节的函数,将该函数内的IIC接口进行替换,以及根据参考下例程的硬件I2C配置即可。

2-small.png

<pre>GPIO_InitTypeDef   GPIO_Handle;
  • I2C_HandleTypeDef  I2C0_Handle;

  • void i2c_init(void)
  • {
  •     /* init i2c CLOCK */
  •     __SYSTEM_I2C0_CLK_ENABLE();

  •     /* I2C IO Init */
  •     GPIO_Handle.Pin       = GPIO_PIN_0 | GPIO_PIN_1;
  •     GPIO_Handle.Mode      = GPIO_MODE_AF_PP;
  •     GPIO_Handle.Pull      = GPIO_PULLUP;
  •     GPIO_Handle.Alternate = GPIO_FUNCTION_3;
  •     gpio_init(GPIOA, &GPIO_Handle);

  •     /* I2C Init */
  •     I2C0_Handle.I2Cx = I2C0;
  •     I2C0_Handle.Init.I2C_Mode = I2C_MODE_MASTER_7BIT;
  •     I2C0_Handle.Init.SCL_HCNT = 500;
  •     I2C0_Handle.Init.SCL_LCNT = 500;
  •     i2c_init(&I2C0_Handle);
  • }

  • void OLED_WR_Byte(u8 dat,u8 mode)
  • {
  •     if(mode){
  •         i2c_memory_write(&I2C0_Handle, 0x78, 0x40, dat);
  •     }
  •     else{
  •         i2c_memory_write(&I2C0_Handle, 0x78, 0x00, dat);
  •     }
  • }</pre>
  • 复制代码