32学习笔记,如有错误,请帮忙指正,谢谢!
学习视频为B站up主江协科技发布的
【STM32入门教程-2023持续更新中】
一、调试方式
1.串口调试
通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息
2.显示屏调试
直接将显示屏连接到单片机,将调试信息打印在显示屏上(本节)
3.Keil调试模式
借助Keil软件的调试模式,可使用单步运行、设置断点、查看寄存器及变量等功能
二、硬件电路
四脚的OLED一般采用I2C的通信协议,上图中的SCL和SDA需要接在32的I2C通信的引脚上(但本节up主教的是GPIO口模拟的I2C通信)
此次接线为:SCL接PB8,SDA接PB9
三、驱动函数
使用之前,先初始化一下;函数的第一个为第几行,第二个为第几列
四、代码实现
1.准备驱动函数
OLED驱动函数模块在up提供的程序源码的1-4内,点进去,再次点击4针脚的文件(7脚就选7脚),将里面的三个文件复制粘贴到我们新建的4-1OLED显示屏的hardware文件夹内,并在Keil软件内添加
(1)OLED.c文件只需要更改引脚配置部分和下方初始化的部分(如图),看你自己把SCL和SDA这两个引脚接在了哪两个端口上
为啥配置为开漏输出:因为标准I2C是有上拉电阻的,没有信号总线高电平,所以要配置成开漏(强制滴)
(开漏输出:仅低电平可以驱动;前面写过的文章3-1GPIO输出)
(2)OLED_Front.h:字库,定义字符的点阵数据,也就是不同的字符有哪些地方需要点亮
2.主函数
(1)老规矩现在main函数最前头include一下OLED.h
(2)在主函数while循环之前进行初始化:OLED_Init();
(3)
①OLED_ShowChar:显示一个字符,第一个参数为第几行,第二参数为第几列,第三个参数为有单引号括起来的字符
②OLED_ShowString:显示字符串,第一、二个参数同上,第三个参数为有双引号括起来的字符串(注意字符串不要超过屏幕了,否则字符串会覆盖或者说字符串乱了,是不会给你第二行接着现实的,自己可以试试)
同时该函数可以用于清除部分,在你想清掉的地方显示空格字符就可以了(OLED_Clear函数局部版)
③OLED_ShowNum:显示无符号十进制数字(全是正的),第一、二个参数同上,第三个参数为数字,第四个参数为显示数字数量
注:若第四个参数大于实际第三个参数的数量,则会在数字前头补0显示(例如,我要显示12345,但是我第四个参数填的6,则OLED显示为012345)如果小于,则会把多余的高位的数据切掉(例如,我还是要显示12345,但是我第四个参数填的4,则OLED显示为2345),这个同样也适用于下面两个函数
④OLED_ShowSignedNum:显示无符号十进制数字,参数和上一个一样,不同的是可以显示负数,第三个参数直接写负数就行(正数不用加正号哦,显示屏显示时会加上正号的,例如,第三个参数写66,显示屏显示为+66)
⑤OLED_ShowHexNum和OLED_ShowBinNum,参数和上面的一样,分别显示十六进制的数和二进制的数(第三个参数都写0x0001,第四个参数:第一个函数写4,第二个函数写16;第一个函数显示为0001,第二个函数显示为0000 0000 0000 0001)
⑥OLED_Clear:清屏;
文章由:知乎作者:十三川编写