簡體   English   中英

帶C代碼的4位LCD

[英]4-bit LCD with C code

我正在使用Winstar Display LCD(WH2004A-YYK-CP)和STM32處理器,代碼用C語言編寫。我需要以4位模式運行它。 我運行它並寫下我想要的東西。

如您所知,4位模式將8位數據發送為2位4位。 問題是,當我在2個半字節之間重置時,它會輸出奇怪的字符,無論我重置多少,它都無法正常工作。 我提出的唯一解決方案是多次重置它。

為了弄清楚發生了什么,我在2個半字節(每個4位)之間增加了2秒延遲,並打印了一個長句。 因此每當我重置它,處理器等待發送第二個半字節。

我正在重置它,它打印一些奇怪的東西,在第二次重置后它什么都沒打印,在第三次重置后它再次正確打印。 第四次重置它再次打印出一些奇怪的東西,第五次打印沒有任何東西,第六次再次正確打印......並繼續這樣下去。 因此,我現在確定問題是這些划分的字節。

類似的代碼在8位模式下工作得非常好。

我要問的是:我怎么能確定“當我重置STM32處理器時,LCD沒有等待在前一個會話中發送第一個半字節的某些數據的第二個半字節。” 使用C代碼?

更新:

我也在這里發送我的代碼: http//pastebin.com/kHQQEqjx

LCD命令也在這里: http//imgur.com/mfDlj

以下是詳細說明以4位模式初始化該LCD控制器所需的所有步驟的流程圖。

在此輸入圖像描述

通常,有一種方法可以重置LCD設備,您可以在處理器啟動時執行此操作。

這樣,處理器的復位也會使LCD處於已知狀態。

您需要掌握數據表(或其他編程規范),看看它是如何完成的。 幾乎可以肯定有一種方法可以讓LCD恢復到已知的初始狀態。

否則,您可能需要將復位開關連接到處理器 LCD控制器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM