第三 四章-OLED使用 和串口

电子说

1.3w人已加入

描述

[]()功能介绍放开头, 使用便捷无需愁。

这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。

V3.3.0-STM32智能小车

视频:
https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click

V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。

第三章-OLED使用

3.1-资料准备

我们先去下载这个OLED模块的资料
智能小车
**这里我们下载:**优信电子--0.96寸 OLED显示液晶屏模块 IIC液晶屏 四引脚

淘宝链接:

[https://item.taobao.com/item.htm?spm=a230r.1.14.16.504611e6WA3Clv&id=562145367495&ns=1&abbucket=3#detail]

OLED资料链接:

0.96寸(4管脚)资料下载链接:

[https://pan.baidu.com/s/1J57Izsv-PKmbwVrA2ynDzg] 提取码:vktz

找到我们要的历程--中景园电子0.96OLED显示屏_STM32F103C8_IIC_V1.0
智能小车

3.2-相关知识

这个OLED是IIC协议,很多都是单片机模拟IIC和模块通信的,这个也是模拟IIC控制OLED的

我们先看一下这个历程
智能小车
智能小车
智能小车
所谓我们移植的时候替换相关初始化内容和GPIO置为函数就行

3.3-解决一些错误

把OLED文件复制过去
智能小车
添加组和包含文件
智能小车
智能小车
选择添加路径
智能小车
编译一下--找不到sys.h 删掉sys.h **
智能小车
编译一下--把所有的u8都替换成uint8_t u32 替换成uint32_t
智能小车
编译报错 找不到uint8_t 包含一下#include "main.h" ** 解决

智能小车
有警告 声明加上void
智能小车
下面是一些GPIO的错误,我要解决初始化问题了
智能小车

3.4-开始初始化OLED

**先看原理图 **SDA-PB12 SCL-PA15

智能小车
然后我们开始初始两个GPIO为输出模式--上拉输出模式
智能小车
然后我们生成代码,更改一下IIC协议的GPIO设置,和初始化部分
智能小车

#define OLED_SCLK_Clr() HAL_GPIO_WritePin(OLED_SCL_GPIO_Port, OLED_SCL_Pin, GPIO_PIN_RESET)//设置SCL低电平
#define OLED_SCLK_Set() HAL_GPIO_WritePin(OLED_SCL_GPIO_Port, OLED_SCL_Pin, GPIO_PIN_SET)//设置SCL高电平#define OLED_SDIN_Clr() HAL_GPIO_WritePin(OLED_SDA_GPIO_Port,OLED_SDA_Pin,GPIO_PIN_RESET)//设置SDA低电平
#define OLED_SDIN_Set() HAL_GPIO_WritePin(OLED_SDA_GPIO_Port,OLED_SDA_Pin,GPIO_PIN_SET)//设置SDA高电平

智能小车
下面delay函数出现报错 我们替换成HAL_Delay
智能小车
智能小车
编译没有报错了,我们在主函数添加初始化和测试代码
智能小车

OLED_Init();//初始化OLED  
  OLED_Clear(); 
  
  OLED_ShowCHinese(0,0,0);//中
OLED_ShowCHinese(18,0,1);//景
OLED_ShowCHinese(36,0,2);//园
OLED_ShowCHinese(54,0,3);//电
OLED_ShowCHinese(72,0,4);//子
OLED_ShowCHinese(90,0,5);//科
OLED_ShowCHinese(108,0,6);//技

烧录下载 现象OLED屏幕显示-中景园电子科技

第四章-串口实验(简单输出)

这里我们先初始化串口一、实现数据输出。

4.1-串口编写

软件初始化
智能小车
然后我们实现串口数据输出

方法一:
智能小车

uint8_t c_Data[] = "串口输出测试:好家伙VCCrn";
HAL_UART_Transmit(&huart1,c_Data,sizeof(c_Data),0xFFFF);
HAL_Delay(1000);

方法二:实现printf函数

打开微库

智能小车
重定向fputc
智能小车

/**
* @brief 重定向printf (重定向fputc),
使用时候记得勾选上魔法棒- >Target- >UseMicro LIB 
可能需要在C文件加typedef struct __FILE FILE;
包含这个文件#include "stdio.h"
* @param 
* @return 
*/
int fputc(int ch,FILE *stream)
{
HAL_UART_Transmit(&huart1,( uint8_t *)&ch,1,0xFFFF);
return ch;
}

如果有错误
智能小车
在usart.c添加这个typedef struct __FILE FILE;
智能小车
添加一下测试(记得包含"stdio.h")
智能小车

printf("printf:好家伙VCC测试rn");

4.2-串口实验

接线图

先烧录好,再连接串口查看现象

连接串口 可以使用 USB转TTL如CH340模块 或者 用DAP的串口功能

使用USB转TTL如CH340模块
智能小车
使用DAP
智能小车
然后我们打开串口助手,选择串口端口和波特率,就可以看到输出

**蓝牙模块使用 **

蓝牙模式使用在后面章节讲解

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分