這是全網(wǎng)最詳細、性價比最高的STM32實戰(zhàn)項目入門教程,通過合理的硬件設(shè)計和詳細的視頻筆記介紹,硬件使用STM32F103主控資料多方便學(xué)習(xí),通過3萬字筆記、12多個小時視頻、20多章節(jié)代碼手把手教會你如何開發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開發(fā)。
V3.3.0-STM32智能小車
視頻:
https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click
V3:HAL庫開發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺控制、電磁循跡、RTOS等功能。
第三章-OLED使用
3.1-資料準備
我們先去下載這個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é)議,很多都是單片機模擬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
然后我們打開串口助手,選擇串口端口和波特率,就可以看到輸出
**藍牙模塊使用 **
藍牙模式使用在后面章節(jié)講解
審核編輯 黃宇
-
OLED
+關(guān)注
關(guān)注
119文章
6188瀏覽量
224003 -
STM32
+關(guān)注
關(guān)注
2269文章
10883瀏覽量
355435 -
串口
+關(guān)注
關(guān)注
14文章
1549瀏覽量
76358 -
智能小車
+關(guān)注
關(guān)注
87文章
549瀏覽量
81710
發(fā)布評論請先 登錄
相關(guān)推薦
評論