
STM32C071RBT6 开发板环境搭建和OLED驱动显示屏实验 安装软件 数据表:https://www.st.com.cn/resource/en/data_brief/nucleo-c092rc.pdf STM32 的集成开发环境:https://www.st.com.cn/zh/development-tools/stm32cubeide.html STM32Cube 初始化代码生成器(必须安装):https://www.st.com.cn/zh/development-tools/stm32cubemx.html STM32CubeProgrammer 软件:https://www.st.com.cn/zh/development-tools/stm32cubeprog.html 要安装至少一个STM32Cube 初始化代码生成器(经过测试至少要在6.13版以上)SetupSTM32CubeMX-6.14.1-Win软件,可以使用MDK进行调试也可以使用STM32的集成开发环境(新版需要安装在win10,不兼容win7),需要安装stlink驱动。 在这个网址https://www.st.com.cn/zh/embedded-software/stm32cubec0.html下载面向STM32C0系列的STM32Cube MCU软件包(包含HAL、底层API和CMSIS、文件系统、RTOS - 以及在各类意法半导体开发板上运行的示例) 假设已经安装好 STM32CubeMX 和 STM32CubeF4 支持包。 打开 STM32CubeMX,点击“New Project”,选择芯片型号,STM32C071rbt。在pinout界面设置PA0、PA1、PA4、PB0,将PA0和PA1设置为开漏输出,PA4和PB0设置为推挽输出,时钟保持默认状态,点击GENERATE CODE自动生成初始化代码: 将OLED文件夹拷贝到工程中: 在项目管理对话框中将文件添加到工程: I2C实现代码如下: void IIC_delay(void) //需要注意这个函数可以调节通信速度 {u8 t=4; while(t--);} void I2C_Start(void) {OLED_SDA_Set(); OLED_SCL_Set(); IIC_delay(); OLED_SDA_Clr(); IIC_delay(); OLED_SCL_Clr(); IIC_delay();} void I2C_Stop(void) {OLED_SDA_Clr(); OLED_SCL_Set(); IIC_delay(); OLED_SDA_Set();} void I2C_WaitAck(void) {OLED_SDA_Set(); IIC_delay(); OLED_SCL_Set(); IIC_delay(); OLED_SCL_Clr(); IIC_delay(); } void Send_Byte(u8 dat) { u8 i; for(i=0;i<8;i++) { if(dat&0x80)//发送数据 { OLED_SDA_Set(); } else { OLED_SDA_Clr(); } IIC_delay(); OLED_SCL_Set(); IIC_delay(); OLED_SCL_Clr(); dat<<=1; } } 修改SDA SCL引脚控制代码,将PA0设置为SDA,将PA1设置为SCL: define OLED_SCL_Clr() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET)//SCLdefine OLED_SCL_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET)define OLED_SDA_Clr() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET)//DINdefine OLED_SDA_Set() HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET)在main()合适位置中添加代码: OLED_Init(); OLED_ColorTurn(0); OLED_DisplayTurn(0); while (1) {OLED_ShowPicture(0,0,128,64,BMP1,1); OLED_Refresh(); HAL_Delay(100); OLED_Clear(); OLED_ShowChinese(0,0,0,16,1);//? OLED_ShowChinese(18,0,1,16,1);//? OLED_ShowChinese(36,0,2,16,1);//? OLED_ShowChinese(54,0,3,16,1);//? OLED_ShowChinese(72,0,4,16,1);//? OLED_ShowChinese(90,0,5,16,1);//? OLED_ShowChinese(108,0,6,16,1);//? OLED_ShowString(8,16,"ZHONGJINGYUAN",16,1); OLED_ShowString(20,32,"2014/05/01",16,1); OLED_ShowString(0,48,"ASCII:",16,1); OLED_ShowString(63,48,"CODE:",16,1); OLED_ShowChar(48,48,t,16,1);//??ASCII?? t++; if(t>'~')t=' '; OLED_ShowNum(103,48,t,3,16,1); OLED_Refresh(); HAL_Delay(100); OLED_Clear(); OLED_ShowChinese(0,0,0,16,1); //16*16 ? OLED_ShowChinese(16,0,0,24,1); //24*24 ? OLED_ShowChinese(24,20,0,32,1);//32*32 ? OLED_ShowChinese(64,0,0,64,1); //64*64 ? OLED_Refresh(); HAL_Delay(100); OLED_Clear(); OLED_ShowString(0,0,"ABC",8,1);//6*8 “ABC” OLED_ShowString(0,8,"ABC",12,1);//6*12 “ABC” OLED_ShowString(0,20,"ABC",16,1);//8*16 “ABC” OLED_ShowString(0,36,"ABC",24,1);//12*24 “ABC” OLED_Refresh(); HAL_Delay(100); OLED_ScrollDisplay(11,4,1); } 当然在调试过程中还有头文件修改,数据类型重定义等工作;调试下载观察到 |
STM32C071RBT6开发板环境搭建和ADC转换实验过程
stm32C071按键中断驱动LED
STM32N6DK测评 CUBEIDE上运行coremark
STM32N6570DK开发板测评 功耗测试
STM32N6570-DK AIdemo测试
STM32N6570DK开发板测评 DCMI摄像头测试
STM32N6下载app到Flash中运行
【STM32F769I-DISC1】刷入micropython并完成点灯、读取内部温度测试
【STM32L562E-DK 测评】简介、环境搭建、工程测试
【GUI板卡测评】1.H750开箱及简单模拟时钟