你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32C071RBT6开发板环境搭建和OLED驱动显示屏实验

[复制链接]
wuyu4001 发布时间:2025-5-7 21:58

STM32C071RBT6 开发板环境搭建和OLED驱动显示屏实验

安装软件

数据表:https://www.st.com.cn/resource/en/data_brief/nucleo-c092rc.pdf

开发工具入门:https://www.st.com.cn/resource/zh/user_manual/um1727-getting-started-with-stm32-nucleo-board-software-development-tools-stmicroelectronics.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驱动。

image.png

在这个网址https://www.st.com.cn/zh/embedded-software/stm32cubec0.html下载面向STM32C0系列的STM32Cube MCU软件包(包含HAL、底层API和CMSIS、文件系统、RTOS - 以及在各类意法半导体开发板上运行的示例)

image.png

假设已经安装好 STM32CubeMX 和 STM32CubeF4 支持包。

image.png

打开 STM32CubeMX,点击“New Project”,选择芯片型号,STM32C071rbt。在pinout界面设置PA0、PA1、PA4、PB0,将PA0和PA1设置为开漏输出,PA4和PB0设置为推挽输出,时钟保持默认状态,点击GENERATE CODE自动生成初始化代码:

image.png

image.png

将OLED文件夹拷贝到工程中:

image.png

在项目管理对话框中将文件添加到工程:

image.png

image.png

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)//SCL

define 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)//DIN

define 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);

}

当然在调试过程中还有头文件修改,数据类型重定义等工作;调试下载观察到

image.png

image.png
收藏 评论0 发布时间:2025-5-7 21:58

举报

0个回答

所属标签

ST中文论坛活动

即日起开启活动话题入口,之后的活动统一都放在此处,欢迎大家的加入!


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版