本帖最后由 gtbestom 于 2024-12-5 22:04 编辑
芯源 CW32L010F8P6 是武汉芯源半导体生产的 ARM Cortex M0+ 单片机,支持国产芯片
主频最高 48MHz,Flash 64K,RAM 4K,具有安全低功耗等特点
官方 CW32L010F8P6 StartKit 开发板上集成了 USB 转串口芯片,EEPROM,FLASH,2个按键,2个LED灯,方便快速开发
芯片支持 JLINK,ST-LINK,CW-DAPLINK 下载,刚好身边有一个 ST-LINK 可以直接使用
将 Flash 接口的跳线帽拔掉,直接插上 IIC 接口 OLED 屏,准备开始点亮
PA03->SDA
PA04->SCL
PA05->GND(输出低电平供电)
将 PA05 输出低电平作为显示屏 GND,这样就不需要跳线,直接插入就可以驱动
点亮效果如下,使用 GPIO 引脚模拟 IIC
代码如下:
int32_t main(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
SYSCTRL_HSI_Enable(SYSCTRL_HSIOSC_DIV12);
__SYSCTRL_GPIOA_CLK_ENABLE();
__SYSCTRL_GPIOB_CLK_ENABLE();
GPIO_InitStruct.IT = GPIO_IT_NONE;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pins = PIN_4 | PIN_5;
GPIO_Init(CW_GPIOA, &GPIO_InitStruct);
GPIO_PIN_L(CW_GPIOA, PIN_5);
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pins = PIN_3;
GPIO_Init(CW_GPIOA, &GPIO_InitStruct);
Mem_Init();
OLED_SSD1306_Init();
OLED_SSD1306_Fill(0x00);
image = Image_Malloc(128, 64, 1);
canvas = Canvas_Init(NULL, image);
Canvas_Point(canvas, 0, 0);
Canvas_Point(canvas, 0, 63);
Canvas_Point(canvas, 63, 0);
Canvas_Point(canvas, 63, 63);
Canvas_Point(canvas, 127, 0);
Canvas_Point(canvas, 127, 63);
Canvas_Circle(canvas, 64, 50, 10);
Canvas_Line(canvas, 64, 63, 10, 45);
Canvas_SetXY(canvas, 10, 10);
Canvas_Str(canvas, "CW32L010F8P6");
Canvas_SetXY(canvas, 20, 25);
Canvas_Str(canvas, "bbs.21ic.com");
OLED_SSD1306_Draw(image->buffer->paddr, 0, 0, image->width, image->height);
while (1)
{
}
}
|