這幾天正好參加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...