隨著USB-C接口的普及,USB Power Delivery(PD)協(xié)議作為USB-C接口的一項重要功能,正逐漸成為電子設(shè)備快速充電和數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)。STM32系列微控制器以其強(qiáng)大的性能和豐富的外設(shè)資源,成為開發(fā)USB-C PD協(xié)議設(shè)備的理想選擇。本文將詳細(xì)介紹如何在STM32平臺上,基于HAL庫進(jìn)行USB-C PD協(xié)議的開發(fā)。
在這里需要理解一個概念就是,使用hal庫,首先一定要對標(biāo)準(zhǔn)庫中外設(shè)的使用,有一個很好的了解,在我這里出現(xiàn)這個原因就是由于對標(biāo)準(zhǔn)庫中外設(shè)的使用不夠了解,導(dǎo)致轉(zhuǎn)移到HAL庫,出現(xiàn)各種問題。本次采用的是HAL庫串口2
信的RTC芯片看起來不錯,但是貴。威帆的SD3088這個不錯,而且還可以給電池充電,便宜很多,淘寶上價格6元一片。我這項目對時間要求嚴(yán)格,就不使用1元多的芯片了。網(wǎng)傳STM32F1的I2C有Bug,模擬通信最為保險。威帆網(wǎng)站
uint8_t aTxBuffer[SPI_BUFFER_SIZE] __attribute__((at(0x20000200))) = {0xaa, 0x00, 0x00};在沒有上面的__attribute__((at(0x20000200))的時候,程序會進(jìn)入Hardfault,進(jìn)入的原因是程序不能從奇地址讀取數(shù)據(jù)。這個
硬件平臺:STM32F429軟件平臺:Keil 5 采用HAL庫本人借鑒了正點(diǎn)原子的例程,在這里表示感謝。在編寫串口的過程中,遇到了HAL_UART_Receive_IT(&UART1_Handler,(u8*)aRxBuffer,1);1這個函數(shù),首先是在初始化uart_init