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

2021-09-25 12:49:15 字數 2626 閱讀 5080

波特率要改為9600

資料的傳輸並非二進位制數,而是 ascii 值

1. 串列埠接收中斷程式的配置(hal庫)

void

uart1_init()

(2)在hal_uart_msplnit 中呼叫 hal_gpio_lnit()來進行相關io口的復用配置,同時不要忘記使能usartx通道,並且配置中斷優先順序。

串列埠接收中中斷優先順序函式配置: hal_nvic_setpriority(usart1_irqn,3,3); //搶占優先順序3,子優先順序3

以及串列埠usartx通道的使能函式:hal_nvic_enableirq(usart1_irqn); //使能usart1中斷通道

串列埠設定的一般步驟:

串列埠時鐘使能,gpio口使能

設定引腳復用

串列埠引數的初始化(這裡將它分離出來放在了函式 void uart1_init() 裡,包括了串列埠使能)

gpio口的初始化設定:要設定模式為復用功能

初始化nvic(優先順序),如果使用中斷就要使能串列埠中斷

例如:

void

hal_uart_mspinit

(uart_handletypedef *huart)

}

(3)編寫中斷服務函式

void

usart1_irqhandler

(void

)

(4)可以呼叫串列埠接收中斷函式:hal_uart_receive_it(&usart1_handler, (u8 *)rdata, 1);

rdata:指的是乙個存放接收大的資料的資料的陣列,可以宣告為:u8 rdata[1];

如果要進行資料的運算或處理,不要忘記是ascii 值,要做x=rdata[0]-『0』;這一步處理才能進行正確運算;

1:是指傳輸資料的大小,此處指的是資料在一位一位的傳輸;

使用串列埠接收中斷函式,在整個資料被一位一位接收直到結束後會開啟中斷,停止繼續傳輸相同的內容。

我這裡使用了數字鍵盤來傳送資料:

在串列埠屏方面我們先要了解printsprinth

prints可以傳送控制項內的值; 而printh則可以傳送十六進製制數

具體我擷取了串列埠hmi指令集上的如圖所示:

我的設計如圖所示:

注意:如果在stm32中遇到**中中斷接受函式是如下圖我標註的,接收中斷收到的資料末尾就需要以0x0d 0x0a結尾,則需要新增printh 0d 0a來傳送兩個十六進製制數。這段**在f429中被注釋了所以串列埠屏中不需要新增 printh 0d 0a 這個了

以下是我所使用的**,實測可用,要注意的是要將串列埠通訊實驗中的 uart.c 原始檔刪去以免產生影響,所以無法使用顯示屏

所以使用 void hal_uart_rxcpltcallback(uart_handletypedef *huart) 這個回饋函式將資料在傳輸到電腦串列埠用原子的 xcom v2.0 軟體來讀取值。

usart2接收串列埠屏資料波特率需要9600

為了統一,在usart1 和 xcom v2.0 中的波特率也改為 9600

需要看一下stm32f429手冊和引腳分布

usart1 : pa9 — pa10

usart2 : pa2 — pa3

#include

"sys.h"

#include

"delay.h"

u8 rdata[1]

; uart_handletypedef usart1_handler;

//uart控制代碼

void

uart_init()

void

hal_uart_mspinit

(uart_handletypedef *huart)

if(huart->instance==usart2)

//如果是串列埠1,進行串列埠1 msp初始化

}void

usart1_irqhandler

(void

)void

usart2_irqhandler

(void

)void

hal_uart_rxcpltcallback

(uart_handletypedef *huart)

}int

main

(void

)

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

這幾天正好參加2019年電賽國賽,為了節約io口的使用量,開始考慮使用串列埠屏 使用串列埠屏的好處不僅能夠充當顯示屏用,而且還內建了數字鍵盤,無需騰出io口給矩陣鍵盤。我所使用的串列埠屏型號為 tjc4832k035 微控制器型號為 stm32f429 使用正點原子的hal庫 硬體連線 gnd gn...

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...