99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

stm32標準庫SPI移植到HAL庫

標準庫和hal庫區別還是相當大的,舉個簡單的例子,驅動SPI OLD

標注庫初始化SPI

再看HAL庫SPI

除了 基本的io口配置區別,其他主要的讀寫函數不用動的,就改一個寫字節函數,對于oled12864屏,不用讀

用這一個函數HAL_SPI_Transmit(&hspi1,&TxData,1,1000)就ok了

/* SPI寫入一個字節 */
void SPI_WByte(uint8_t TxData)
{
//	/* 通過外設SPIx發送一個數據 */
//	SPI_I2S_SendData(OLED_SPI, TxData);

//	/* 檢查指定的SPI標志位設置與否:發送緩存空標志位*/
//	while (SPI_I2S_GetFlagStatus(OLED_SPI, SPI_I2S_FLAG_TXE) == RESET);
	HAL_SPI_Transmit(&hspi1,&TxData,1,1000);
}

我們再看CubeMX配置SPI,模式為Full-Duplex Master,即全雙工主機模式;

接下來是選擇NSS 的模式,NSS模式共有三種:NSS_Soft、Hardware Input和Hardware Output

NSS_Soft —— 即軟件控制CS片選信號拉高或者拉低,選擇該模式時,如果需要輸出CS,要配置選擇的引腳為輸出模式,如我這里將PA4引腳做CS信號輸出腳,則應該在CubeMX中配置其為GPIO_Output模式,之后在程序中通過設置引腳SET或RESET進行拉高或者拉低。

Hardware Output —— 即硬件輸出模式,選擇該模式時,硬件SPI要發送數據時會自動將片選信號拉低并且通過PA4引腳輸出,主要用于一主一從的SPI通信控制

Hardware Input —— 即硬件輸入模式,該模式只有在設備作為從機通信時可選擇,輸入的片選信號控制設備的通信與否    這里選擇NSS_Soft(后面解釋為什么不能選Hardware Output模式)

對于SPI讀寫控制中,最好設置為NSS_Soft模式,不要用硬件輸出模式,然后每次軟件控制NSS拉低再拉高,從而實現指令的成功發送。

對于GPIO這塊

CubeMX上開啟io并標相關功能的簽標好

全部回復(2)
正序查看
倒序查看
2022-01-23 12:49

來搶占一波沙發吧,記得上次學習STM32還是大二的時候了,都四五年之前的事了,不過這個東西非常重要,學好軟硬件,走遍天下都不怕,哈哈哈

0
回復
2022-01-24 13:40

你這個不是講標準庫移植到HAL庫,感覺就是將CUBE-MX的SPI基本配置,而且還沒有講全,個人觀點哈!

0
回復
主站蜘蛛池模板: 精品国产麻豆一区二区三区 | 成人软件在线观看 | 5060网午夜| 西西最大胆日本无码视频 | 亚一区二区 | 少妇大叫又粗又大太爽A片 heyzo朝桐光一区二区 | 无遮无挡爽爽免费视频 | 国产v精品成人免费视频400条 | 国产各种高潮合集在线观看 | 西西人体啪啪 | 麻豆传媒观看 | 亚洲有吗在线观看 | 精品国产一区天天 | 香港三级精品三级在线专区 | 日韩城人免费 | 四虎看片 | 日本神影院一区二区三区 | 国产亚洲欧美日韩在线一区 | 亚洲精品久久久久无码精品 | 国产专区一区二区 | 中文字幕v亚洲ⅴv天堂 | a级国产片 | 亚洲乱码一二三四区 | 久久久精品国产免费观看一区二区 | 中文字幕天堂av | 狂野欧美激情性XXXX按摩 | 狠狠干人人干 | 91精品国产综合久久久久久蜜臀 | 在线观看最新中文字幕AV | 日本中文字幕在线免费观看视频 | 35岁少妇被23岁小伙征服 | 亚洲精品乱码久久久久 | 97SE亚洲国产综合自在线 | 人善交VIDEOS欧美3D | 亚洲国产一级毛片 | 最近免费中文字幕在线mv视频8 | 欧美精品福利视频 | 久久国产精品视频 | 乱人伦人成品精国产在线 | 天堂在线精品 | 欧美乱强伦XXXX孕妇 |