第三 四章-OLED使用 和串口openmv圖像處理小車硬件介紹-(全網(wǎng)最詳細(xì))基于STM32智能小車-藍(lán)牙遙控、避障、循跡、跟隨、PID速度控制、視覺循跡、openmv與STM32通信、
第三章-OLED使用
3.1-資料準(zhǔn)備
我們先去下載這個OLED模塊的資料
這里我們下載:優(yōu)信電子–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-相關(guān)知識
這個OLED是IIC協(xié)議,很多都是單片機(jī)模擬IIC和模塊通信的,這個也是模擬IIC控制OLED的
我們先看一下這個歷程
所謂我們移植的時候替換相關(guān)初始化內(nèi)容和GPIO置為函數(shù)就行
3.3-解決一些錯誤
把OLED文件復(fù)制過去
添加組和包含文件
選擇添加路徑
編譯一下–找不到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協(xié)議的GPIO設(shè)置,和初始化部分
#define OLED_SCLK_Clr() HAL_GPIO_WritePin(OLED_SCL_GPIO_Port, OLED_SCL_Pin, GPIO_PIN_RESET)//設(shè)置SCL低電平
#define OLED_SCLK_Set() HAL_GPIO_WritePin(OLED_SCL_GPIO_Port, OLED_SCL_Pin, GPIO_PIN_SET)//設(shè)置SCL高電平
#define OLED_SDIN_Clr() HAL_GPIO_WritePin(OLED_SDA_GPIO_Port,OLED_SDA_Pin,GPIO_PIN_RESET)//設(shè)置SDA低電平
#define OLED_SDIN_Set() HAL_GPIO_WritePin(OLED_SDA_GPIO_Port,OLED_SDA_Pin,GPIO_PIN_SET)//設(shè)置SDA高電平
下面delay函數(shù)出現(xiàn)報錯 我們替換成HAL_Delay
編譯沒有報錯了,我們在主函數(shù)添加初始化和測試代碼
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);//技
燒錄下載 現(xiàn)象OLED屏幕顯示-中景園電子科技
第四章-串口實驗(簡單輸出)
這里我們先初始化串口一、實現(xiàn)數(shù)據(jù)輸出。
4.1-串口編寫
軟件初始化
然后我們實現(xiàn)串口數(shù)據(jù)輸出
方法一:
uint8_t c_Data[] = "串口輸出測試:好家伙VCCrn";
HAL_UART_Transmit(&huart1,c_Data,sizeof(c_Data),0xFFFF);
HAL_Delay(1000);
方法二:實現(xiàn)printf函數(shù)
打開微庫
重定向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-串口實驗
接線圖
先燒錄好,再連接串口查看現(xiàn)象
連接串口 可以使用 USB轉(zhuǎn)TTL如CH340模塊 或者 用DAP的串口功能
使用USB轉(zhuǎn)TTL如CH340模塊
使用DAP
然后我們打開串口助手,選擇串口端口和波特率,就可以看到輸出
藍(lán)牙模式使用在后面章節(jié)講解
聯(lián)系:Q,1930299709