STM32G031とI2Cを使い0x40(8ビット表記0x80)にソフトウェアシリアル入力を出力する。(Arduino)
目的
I2Cのテスト
I2C->USART9600bps->USBのテスト
STM32G031とVSCode+STM32CubeでI2Cスレーブの受信文字をシリアル出力(受信)(STM32-I2C-USART)(CH340N)
主にLED表示装置等にデータを送信する
マスターモードで送信
シリアルからは、受信
//ser_out_i2c_test_031_1
#include <Arduino.h>
#include <Wire.h>
#define ADDR1 0x40
//STM32G031J6M6 i2cピンの定義
#define sdaPin PA12 // ArduinoA4
#define sclPin PA11 // ArduinoA5
#define RX1 PA0 // 1pin
//#define in7 1 //uno
#define in7 PB7 // 1pin
//#define in7 PA9 // 1pin
//#define RX1 PA10 // 1pin
//#define TX1 PA0 // 1pin
#define DW digitalWrite
//#define UART_DELAY 832 // 1200bps ok 031
#define UART_DELAY 102 // 9600bps ok 031
int pc_getc()
{
int a,b,c,d,e,f,g,h;
int bs;
//待ちループ
while( digitalRead(RX1) == 1 ) {}
delayMicroseconds(156-3);
a=(digitalRead(RX1));
delayMicroseconds(104-3);
b=(digitalRead(RX1));
delayMicroseconds(104-4);
c=(digitalRead(RX1));
delayMicroseconds(104-4);
d=(digitalRead(RX1));
delayMicroseconds(104-3);
e=(digitalRead(RX1));
delayMicroseconds(104-3);
f=(digitalRead(RX1));
delayMicroseconds(104-4);
g=(digitalRead(RX1));
delayMicroseconds(104-4);
h=(digitalRead(RX1));
delayMicroseconds(156-3);
bs=h*128+g*64+f*32+e*16+d*8+c*4+b*2+a;
return(bs);
}//pc_getc
//I2Cへの一文字出力
int pc_putc(char ch) {
//I2Cに送信
Wire.beginTransmission(ADDR1);
Wire.write( ch );
Wire.endTransmission();
delay(1);//連続送信防止の為に1ms待つ
//戻り値
return (0);
}//pc_putc
//文字列の表示
int pc_printf(char *str1) {
//文字の中身がゼロか
while(*str1){
//一文字出力
pc_putc(*str1 ++);
} //while
//戻り値
return(0);
}//pc_printf
//初期化
void setup()
{
delay(3000);
//ポートをhiにする 初期化
pinMode(RX1,INPUT_PULLUP);
//i2cの初期化
Wire.begin(sdaPin, sclPin); //STM32G031J6M6
//LEDの初期化
pinMode(in7, OUTPUT);
DW(in7, HIGH);
pc_printf("STRT\r\n"); //debug
} //setup
//メインループ
void loop()
{
char ch = pc_getc();
DW(in7, HIGH );
char str2[2]={ ch ,0};
pc_printf("-----ch=[");
pc_printf( str2 );
pc_printf("\r\n");
DW(in7, LOW );
//1秒の待ち
//delay(1000);
} //loop
Author And Source
この問題について(STM32G031とI2Cを使い0x40(8ビット表記0x80)にソフトウェアシリアル入力を出力する。(Arduino)), 我々は、より多くの情報をここで見つけました https://qiita.com/caa45040/items/069c2667739d83a03347著者帰属:元の著者の情報は、元の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 .