寫在前面:
本文章為《STM32MP157資源擴展板驅動移植篇》系列中的一篇,筆者使用的開發平臺為華清遠見FS-MP1A開發板(STM32MP157開發板),資源擴展板是FS-MP1A開發板的擴展模塊,主要包含了10余種主流傳感器、執行器件、總線控制器件,非常方便專案擴展用,可拓展開發智慧家庭、智能醫療、智能安防、工業控制、影像識別、環境檢測等方向的10個左右綜合專案,華清遠見開發板也將配套提供所有專案的說明檔案、實驗原始碼、應用程式等資料,
針對FS-MP1A開發板,除了資源擴展板驅動移植篇外,還包括其他多系列教程,包括Cortex-A7開發篇、Cortex-M4開發篇、FreeRTOS篇、Linux應用開發篇、Linux系統移植篇、Linux驅動開發篇、硬體設計篇、人工智能機器視覺篇、Qt應用編程篇、Qt綜合專案實戰篇等,歡迎關注,更多stm32mp157開發教程及視頻,可加技術交流Q群459754978,感謝關注,
FS-MP1A開發板詳情介紹:
https://item.taobao.com/item.htm?id=622457259672
資源擴展板介紹
硬體介紹

資源擴展板可開發專案

2. 擴展板數碼管控制
2.1.實驗原理
打開擴展板原理圖對照擴展板可以看到擴展板上四位數碼管原理圖如下:

由圖中可以確定數碼管為共陰極數碼管,DS_A、DS_B、DS_C、DS_D、DS_E、DS_F、DS_G、DS_DP分別對應數碼管的每個段,對應管腳為高電平時對應的部位會被電量,因為只有一組資料信號,但是有四個數碼管,所以需要通過控制DS_G1、DS_G2、DS_G3和DS_G4選擇某個數碼管顯示內容,然后通過輪詢重繪讓四個數碼管正常顯示,


M74HC595是一個傳入并出的移位暫存器,如果有多個芯片級聯也可串行輸出控制下一級芯片,QA~QH為并行輸出,QH’為串行輸出;如果本例四個LED數碼管由兩個M74HC595控制,第一級控制數碼管顯示什么,第二級控制哪個數碼管顯示,

根據上述描述在撰寫驅動是可以通過GPIO模擬74HC595的時鐘完成控制,因為74H595時序和SPI時序兼容,所以也可通過SPI控制器控制74HC595,

74H595部分時序

SPI時序(CPHA=0 CPOL=0)

擴展板與底板介面對照圖
查看芯片手冊,管腳對應關系如下:

2.2. 實驗目的
了解M74HC595移位暫存器
學習SPI協議的使用方法,掌握如何利用STM32MP157A芯片控制顯示數碼管
2.3. 實驗環境
FS-MP1A開發平臺
ST-Link仿真器
STM32CubeIDE開發軟體
PC機 XP、Window7/10 (32/64bit)
2.4. 實驗步驟
打開STM32CubeIDE,配置CubeMX,
根據21.1節,使用的是SPI默認引腳,分別對PE11、PE12、PE13和PE14配置為SPI_NSS、SPI_SCK、SPI_MISO和SPI_MOSI,切換到SPI4標簽,勾選為“M4”,“Mode”選擇“Full-Duplex-Master”,使用硬體片選,選擇“Hardware NSS Output Signal”,其配置如下圖所示,

上述為新建工程配置程序,可參考12.3.2章節進行匯入已有工程,工程存放路徑【華清遠見-FS-MP1A開發資料\02-程式原始碼\ARM體系結構與介面技術\Cortex-M4\9_EX_SPI_NUMBER】
代碼設計
本次使用的是硬體SPI,就不需要自己寫程式實作SPI時序,需要做的僅僅是呼叫HAL提供的SPI硬體操作函式,其中,呼叫“HAL_SPI_Transmit”函式實作主機向從機發送資料,創建driver_sm74hc.c檔案,在檔案中實作數碼管的控制代碼如下,
void M74HC595_ReadDataTest(void)
{
rw_595_Register(0X02,0X66);
HAL_Delay(1);
rw_595_Register(0X04,0X07);
HAL_Delay(1);
}
uint8_t rw_595_Register(uint8_t reg,uint8_t data)
{
uint8_t txdata[2] = {reg, data};
if(HAL_SPI_Transmit(&hspi4, txdata ,2,300) != HAL_OK)
{
Error_Handler();
}
return 0;
}
其中,引數“reg”表示第幾個數碼管顯示,引數“data”表示數碼管顯示的內容,
在主函式中回圈呼叫“rw_595_Register”函式即可以實作在數碼管上顯示特定內容,實驗結果如圖所示,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294453.html
標籤:其他
上一篇:網路爬蟲常用技術(下)
