新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于STM32G070RB的七彩星空燈教程(一)

        基于STM32G070RB的七彩星空燈教程(一)

        作者:zhuzhaokun1987 時間:2022-05-19 來源:EEPW論壇 收藏

        今天我們用G070RB NUCLEO開發板  和WS2812燈帶  制作一個七彩

        本文引用地址:http://www.104case.com/article/202205/434253.htm

        先簡單說下WS2812的工作過程吧

        1, 上電時,WS2812數據IO為低電平保持。

        2, 空閑時,IO為低電平。

        3, 數據發送完畢后,保持電平,超過規格書上定義的RESET時間(只有低電平時間超過280us,就可以認為是RESET.)

        先看下數據的時序

        image.png

        如下是每24bit的組成。注意,順序不是RGB888,而是GRB888。一般我們取顏色的數值,都是RGB順序,所以這里在代碼里實現的時候,會需要做一下移位。另外,需要注意的是,需要高位先發(MSB)。

        1620462565424012.png

        時序波形圖。關鍵在于用什么方法去表示Bit的波形,網絡上的方法有很多。例如PWM,也有用SPI。今天我們就先用一種簡單方法實行吧,IO口模擬是不錯的選擇。

        1620462611495119.png

        萬事從新建工程開始,打開CubeMX

        image.png

        在搜索框內搜索 我們的開發板型號,也就是G070RB,好的這樣工程就新建好的,

        1620462694480698.png

        配置時鐘樹,如下圖所示。

        1620462707594790.png

        接下來配置引腳 ,這里我們采用的是PWM+DMA的方式來驅動WS2812,通過WS2812的手冊可以得知驅動需要800KHZ的頻率好的我們現在來配置定時器,這里以定時器1為例來配置。如下圖所示。計算方法79=(64M/800K)-1得出。下面的Pulse是指一個周期的脈沖數

        1620462732346161.png

        下面我們開始配置DMA,如下圖所示配置

        1620462745140906.png

        好的到這里就可以生成代碼

        1620462761352853.png

        好的到這里我們就已經把我們需要用到的資源初始化完成了,下次我們開始點亮彩燈。

        有了解過的,可以先嘗試嘗試哦。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安仁县| 遵义县| 航空| 德庆县| 滨海县| 沙田区| 阿坝县| 中阳县| 沭阳县| 天峻县| 海原县| 额济纳旗| 浦江县| 宜宾市| 沐川县| 简阳市| 白水县| 民丰县| 泸水县| 宣恩县| 增城市| 六安市| 嘉荫县| 涿州市| 武山县| 宜宾市| 文水县| 抚宁县| 清丰县| 伊宁市| 清流县| 柞水县| 安溪县| 阳江市| 麦盖提县| 高安市| 英山县| 泾源县| 疏附县| 邯郸市| 宽甸|