STM32G031と液晶、ACM1602K-NLW-BBWでHello Worldを表示(STM32G031J6M6)
x 原因は、わからないが液晶がちらつく場合は、ウェートを調整してね!!
STM32G031J6M6でArduinoを使い16文字2行液晶に
Hello Worldを表示するプログラム
74hc164シフトレジスターを使用した。
液晶とのピン数を節約した。信号線10本から
信号線3本に減らした。
1 CLK クロック端子(緑色)
2 RSDATA RS端子とデータの共有端子(黄色)
3 E 読み込み書き込み同期信号(青色)
#include <Arduino.h>
//* ***** *****
//* * * *
//* * * *
//* * * *
//* * * *
//******** ***** *****
#define DW digitalWrite
//#define swdclk PA14 // 8pin
//#define swdio PA13 // 7pin
//#define swdclk PA11 // 5pin
//#define swdio PA12 // 6pin
#define swdclk PA12 // 6pin
#define swdio PA11 // 5pin
//#define t_led1 PA12 // 6pin
//#define t_led2 PA11 // 5pin
#define en PA0 // 4pin
#define in7 PB7 // 1pin
// tx PA14(PB6) 8PIN
// rx PC14(PB7) 1PIN
void setup() {
// put your setup code here, to run once:
delay(3000); //not Delete
pinMode(swdclk,OUTPUT);
pinMode(swdio,OUTPUT);
pinMode(en,OUTPUT);
pinMode(in7,INPUT_PULLUP);
DW(en,0);
DW(swdio,0);
for(int i=0;i<10;i++){
DW(swdclk,1);
delay(15);
DW(swdclk,0);
delay(15);
} //for
}
int v;
int rs;
void seg1()
{
DW(swdio,(v>>7)&1);DW(swdclk,1);DW(swdclk,0); //7
DW(swdio,(v>>6)&1);DW(swdclk,1);DW(swdclk,0); //6
DW(swdio,(v>>5)&1);DW(swdclk,1);DW(swdclk,0); //5
DW(swdio,(v>>4)&1);DW(swdclk,1);DW(swdclk,0); //4
DW(swdio,(v>>3)&1);DW(swdclk,1);DW(swdclk,0); //3
DW(swdio,(v>>2)&1);DW(swdclk,1);DW(swdclk,0); //2
DW(swdio,(v>>1)&1);DW(swdclk,1);DW(swdclk,0); //1
DW(swdio,(v>>0)&1);DW(swdclk,1);DW(swdclk,0); //0
DW(swdio,rs);
DW(en,1); delayMicroseconds(40);
DW(en,0);
}
void loop() {
// put your main code here, to run repeatedly:
//ファンクションセット1
rs=0;
v=0x30;seg1();
delay(5);
//ファンクションセット2
rs=0;
v=0x30;seg1();
delay(1);
//ファンクションセット3
rs=0;
v=0x30;seg1();
//ファンクションセット 2ラインモード
rs=0;
v=0x38;seg1();
//表示オフ
rs=0;
v=0x08;seg1();
//画面クリア
rs=0;
v=0x01;seg1();
delay(2);
//エントリーモードセット
rs=0;
v=0x06;seg1();
//表示オン
rs=0;
v=0x08+0x04;seg1();
//@文字の表示
rs=1;
v='@';seg1();
delay(500);
//1ライン目にカーソルを移動
rs=0;
v=0x80+0x00;seg1();
int ii;
char ss1[]="Hello World !";
ii=0;
while(ss1[ii]!=0){
//文字の表示
rs=1;
v=ss1[ii];ii++;seg1();
} //while
while(1){} //無限ループ
} //loop
Author And Source
この問題について(STM32G031と液晶、ACM1602K-NLW-BBWでHello Worldを表示(STM32G031J6M6)), 我々は、より多くの情報をここで見つけました https://qiita.com/caa45040/items/4680a5182531c4010bbb著者帰属:元の著者の情報は、元の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 .