STM32L010でWS2812Bを光らせる。
x Mbedのリビジョン143
x まだ、ためしていないけど動くはず6/8
X 動作確認で正しく動作する事を確認した。6/9 (結果は、ページの最後)
目的
GPIOのテスト
構成
マイコン内蔵RGBLED WS2812B (2個入)
[WS2812B(V5)]
通販コード I-07915
発売日 2014/05/27
メーカーカテゴリ Worldsemi Co.,Limited (ワールドセミ)
参考
#include "mbed.h"
//Serial pc(USBTX, USBRX); // tx, rx
//Serial pc(SERIAL_TX, SERIAL_RX); //767 303
//RawSerial pc(PA_2, PA_3); //010
//myled 1.827Mhz 010
//GPIOA->ODR 7,995Mhz 010
#define on1 0b0000000000010000
#define off1 0b0000000000000000
DigitalOut myled(PA_4);
int l[90]; //max30 led
void bit_on1();
void bit_off1();
// 12345678 12345678 12345678 12345678
int b8[8] = {0b10000000,0b01000000,0b00100000,0b00010000,
0b00001000,0b00000100,0b00000010,0b00000001, };
int ws_led(int num1)
{
int on_off;
//__disable_irq(); // disable interrupt
//__enable_irq(); // enable interrupt
//GPIO bkup
//int g_bk = GPIOA->ODR;
for(int ii=0;ii<num1;ii++){
//pc.printf(" -%d\t%d\r\n",ii,l[ii]); //303
//8ビット分送る
for(int jj=0;jj<8;jj++){
//pc.printf(" -%d\r\n",jj); //303
on_off = l[ii] & b8[jj];
if( on_off == 0 ){
//ビットが0
//pc.printf("0"); //303
bit_off1();
} else {
//ビットが1
//pc.printf("1"); //303
bit_on1();
}//endif
}//for 8bit
}//for max30byt
//__disable_irq(); // disable interrupt
//__enable_irq(); // enable interrupt
//GPIO bkup
//GPIOA->ODR = g_bk;
return(0);
}
//メイン
int main() {
//pc.printf("\r\n303\r\n"); //303
l[0] = 31;
l[1] = 32;
l[2] = 33;
ws_led(3);
} //main
// 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
void bit_off1(){
//0.3us 800khz
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
}//bit_off1
// 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
void bit_on1(){
//1us 800khz
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = on1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
GPIOA->ODR = off1;
}//bit_on1
Author And Source
この問題について(STM32L010でWS2812Bを光らせる。), 我々は、より多くの情報をここで見つけました https://qiita.com/caa45040/items/e9279f7957dd8387a8f9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .