找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1603|回復(fù): 1
收起左側(cè)

IAR For STM8調(diào)用子函數(shù)后LCD1602顯示異常

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 10 黑幣 回復(fù)本帖可獲得 2 黑幣獎(jiǎng)勵(lì)! 每人限 1 次(中獎(jiǎng)概率 80%)
ID:275894 發(fā)表于 2019-8-31 13:10 | 顯示全部樓層 |閱讀模式
有一個(gè)LCD1602顯示的問(wèn)題,困擾了好幾天,檢查過(guò)時(shí)序,檢查過(guò)延時(shí),也檢查過(guò)IAR配置,都沒(méi)有問(wèn)題。
一直找不到解決辦法,不知有誰(shuí)遇到過(guò)類(lèi)似的現(xiàn)象沒(méi)?
如果有,麻煩指點(diǎn)一下迷津,謝謝。
具體問(wèn)題如下:

1)將LCD1602 寫(xiě)指令/寫(xiě)數(shù)據(jù)以一個(gè)子函數(shù)單獨(dú)寫(xiě)進(jìn)一個(gè)名為L(zhǎng)CD1602.c的文件里;

2)在工程文件里將其加入到Sub_funtion子目錄下

3)在LCD1602.c中創(chuàng)建一個(gè)LCD1602_DIS_CHAR()的子函數(shù);


4)在主函數(shù)中直接調(diào)用LCD1602_DIS_CHAR(),比如在LCD1602的第一行第一列顯示字符'M',第二行第二列顯示字符'X',
實(shí)際顯示結(jié)果如下:



5)同樣的配置,在LCD1602.c中新建一個(gè)名為show_X_M()的子函數(shù),再在主函數(shù)中直接調(diào)用show_X_M()函數(shù),則顯示正常

這意味著,所有用LCD1602顯示的指令(字符,數(shù)據(jù)等)必須寫(xiě)到LCD1602.c的子函數(shù)里面,再在主函數(shù)中調(diào)用該子函數(shù)才能保證LCD1602顯示正常。
但如果用LCD1602顯示IIC或者SPI等傳遞的數(shù)據(jù),意味著這些協(xié)議也得寫(xiě)進(jìn)LCD1602.c里面。導(dǎo)致程序失去了模塊化的意義,不方便檢查和調(diào)試。

圖片中為對(duì)應(yīng)步驟的截圖
1.png

example13.4.8.rar

477.36 KB, 下載次數(shù): 3

回復(fù)

使用道具 舉報(bào)

ID:275894 發(fā)表于 2019-10-12 09:07 | 顯示全部樓層
問(wèn)題已經(jīng)解決,調(diào)用各個(gè)子函數(shù)需要事先編寫(xiě)頭文件,并將子函數(shù)內(nèi)的函數(shù)名在頭文件內(nèi)聲明
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表