STM32F429與陶晶馳串列埠屏資料傳輸 1

2021-09-25 11:53:12 字數 2984 閱讀 9216

這幾天正好參加2023年電賽國賽,為了節約io口的使用量,開始考慮使用串列埠屏;使用串列埠屏的好處不僅能夠充當顯示屏用,而且還內建了數字鍵盤,無需騰出io口給矩陣鍵盤。

我所使用的串列埠屏型號為:tjc4832k035

微控制器型號為:stm32f429 (使用正點原子的hal庫)

硬體連線:

gnd---->gnd

tx------>pa10(usart1_rx)

rx------>pa9 (usart1_tx)

+5------->+5

串列埠指令:指令+0xff 0xff 0xff

串列埠屏學習:usart hmi軟體--------->左上角工具欄---------->幫助----------->入門指南、指令集

最為重要:波特率

串列埠屏的波特率應和微控制器波特率保持一致(串列埠屏的預設波特率為9600)

但是如果想要修改串列埠屏的波特率為115200來提高傳輸速度,可以使用系統變數baud來改變

修改方式可以參考如下圖來修改串列埠屏波特率:在事件框裡的「前初始化事件」裡加上baud=115200就可以完成修改

因為需要用到printf(" "),所以需要使用串列埠通訊實驗,包含huart.h標頭檔案

注意printf只能uart1使用

要了解微控制器的一些函式

在stm32f103標準庫中的傳送函式:

void usart_senddata(usart_typedef usartx, uint16_t data)*

等待傳送結束:

while(usart_getflagstatus(usart1,usart_flag_txe)==reset){};

而在stm32f429的hal庫中的傳送函式:

hal_uart_transmit(*uart_handletypedef *huart, uint8_t pdata, uint16_t size, uint32_t timeout)

等待傳送結束:

while((__hal_uart_get_flag(&uart1_handler,uart_flag_txe)==reset)){};

向串列埠屏傳送指令是需要以3個0xff結束指令,這就需要編寫傳送十六進製制數的函式

即:void hmisend(u8 k)

附上編寫的**(主要是f429的)

void

hmisend

(u8 k)

//位元組傳送函式

;//stm32f103:while(usart_getflagstatus(usart1,usart_flag_txe)==reset){};//等待傳送結束

delay_ms(10

);}}

}

選用陶晶馳的串列埠屏需要用usart hmi來編寫,介面如圖1所示

這裡我所選用的是數字控制項和虛擬浮點數控制項(數字:n0 ;虛擬浮點數:x0)

如圖2所示

先介紹數字控制項,我們只需要看其屬性列表的val那欄如圖2所示

val:初始值最小-2147483648,最大2147483647

傳送指令的書寫格式可參考指令集(例:n0.val=1000

對於虛擬浮點數,實際上就是小數,我們需要看val,vvs0,vvs1這三欄,如圖3所示

val:初始值最小-2147483648,最大2147483647

vvs0:整數字數(0為自動,最大10位)

vvs1:小數字數(0為無小數,最大8位)

顯示小數(例:2.555)的方法:

假如vvs0設定為:1;

vvs1設定為:3;

傳送指令:x0.val=2555

其中:2存放在整數字,555存放在小數字

附上我的**:

#include

"sys.h"

#include

"delay.h"

#include

"usart.h"

#include

"led.h"

void

hmisend

(u8 k)

;int

main

(void)}

void

hmisend

(u8 k)

//位元組傳送函式

;//等待傳送結束

delay_ms(10

);}}

}

串列埠屏料

STM32F429與陶晶馳串列埠屏資料傳輸 2

波特率要改為9600 資料的傳輸並非二進位制數,而是 ascii 值 1.串列埠接收中斷程式的配置 hal庫 void uart1 init 2 在hal uart msplnit 中呼叫 hal gpio lnit 來進行相關io口的復用配置,同時不要忘記使能usartx通道,並且配置中斷優先順序...

STM32F429除錯記錄(一)

stm32f429的晶元有兩路can介面 四路串列埠 內部乙太網以及內部dsp處理器等硬體,硬體的豐富程度可見一斑,而且主頻達到180mhz,雖然比a8 a9架構的arm晶元還是差一大截,但是在工業控制上的應用還是比較多的。在程式編寫方面stm32f4系列不管在mdk還是庫函式都有挺大改動,剛著手除...

STM32F429 如何使用SDRAM

關於stm32f429 控制sdram fmc 擴充套件外部sdram 1 原理介紹 為什麼是fmc 不是 fsmc 區別在那裡!stm32f429使用fmc外設來管理擴充套件的儲存器,fmc是flexible memory controller的縮寫,譯為可變儲存控制器。它可以用於驅動包括sram...