新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STM32G070RB的七彩星空燈教程(一)

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

        作者:zhuzhaokun1987 時(shí)間:2022-05-19 來(lái)源:EEPW論壇 收藏

        今天我們用G070RB NUCLEO開發(fā)板  和WS2812燈帶  制作一個(gè)七彩

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

        先簡(jiǎn)單說(shuō)下WS2812的工作過(guò)程吧

        1, 上電時(shí),WS2812數(shù)據(jù)IO為低電平保持。

        2, 空閑時(shí),IO為低電平。

        3, 數(shù)據(jù)發(fā)送完畢后,保持電平,超過(guò)規(guī)格書上定義的RESET時(shí)間(只有低電平時(shí)間超過(guò)280us,就可以認(rèn)為是RESET.)

        先看下數(shù)據(jù)的時(shí)序

        image.png

        如下是每24bit的組成。注意,順序不是RGB888,而是GRB888。一般我們?nèi)☆伾臄?shù)值,都是RGB順序,所以這里在代碼里實(shí)現(xiàn)的時(shí)候,會(huì)需要做一下移位。另外,需要注意的是,需要高位先發(fā)(MSB)。

        1620462565424012.png

        時(shí)序波形圖。關(guān)鍵在于用什么方法去表示Bit的波形,網(wǎng)絡(luò)上的方法有很多。例如PWM,也有用SPI。今天我們就先用一種簡(jiǎn)單方法實(shí)行吧,IO口模擬是不錯(cuò)的選擇。

        1620462611495119.png

        萬(wàn)事從新建工程開始,打開CubeMX

        image.png

        在搜索框內(nèi)搜索 我們的開發(fā)板型號(hào),也就是G070RB,好的這樣工程就新建好的,

        1620462694480698.png

        配置時(shí)鐘樹,如下圖所示。

        1620462707594790.png

        接下來(lái)配置引腳 ,這里我們采用的是PWM+DMA的方式來(lái)驅(qū)動(dòng)WS2812,通過(guò)WS2812的手冊(cè)可以得知驅(qū)動(dòng)需要800KHZ的頻率好的我們現(xiàn)在來(lái)配置定時(shí)器,這里以定時(shí)器1為例來(lái)配置。如下圖所示。計(jì)算方法79=(64M/800K)-1得出。下面的Pulse是指一個(gè)周期的脈沖數(shù)

        1620462732346161.png

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

        1620462745140906.png

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

        1620462761352853.png

        好的到這里我們就已經(jīng)把我們需要用到的資源初始化完成了,下次我們開始點(diǎn)亮彩燈。

        有了解過(guò)的,可以先嘗試嘗試哦。



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 都江堰市| 登封市| 乌拉特后旗| 叙永县| 宁南县| 山阳县| 罗江县| 射阳县| 福贡县| 盘锦市| 嫩江县| 三门峡市| 荣昌县| 中宁县| 保定市| 舞钢市| 尉氏县| 穆棱市| 诏安县| 含山县| 乌拉特后旗| 松阳县| 寿阳县| 鄯善县| 铅山县| 汤原县| 湟源县| 兴文县| 镇江市| 潮州市| 安平县| 铜川市| 鄂托克前旗| 新竹县| 上蔡县| 丰原市| 镶黄旗| 肥西县| 樟树市| 天柱县| 弥渡县|