sumoon_yao
发表于 2020-10-7 10:55:56
NUCLEO-G474做的小信号采集控制项目:
行色匆匆
发表于 2020-10-7 12:18:09
以前学习I2C接口时做的液晶时钟
使用了一块STM32最小系统板、1602字符显示屏、I2C模块转串口模块、DS3231RTC模块,使用STM32作为主设备,RTC模块和将液晶屏作为从设备进行I2C通信。
将I2C模块转串口和RTC模块的SDA端子都连接到STM32的B6,然后将两个模块的SDA端子都连接到STM32的B7引脚,两个模块设置了I2C地址,使用这些地址来标识不同的模块。
代码如下:
#include <LiquidCrystal_I2C.h>
#include <DS3231_Simple.h>
LiquidCrystal_I2C lcd(0x27,16,2);
DS3231_Simple Clock;
volatile int flag=0;
void setup()
{
}
void loop()
{
pinMode(PA0,INPUT_PULLUP);
attachInterrupt(PA0, TimeADJ, CHANGE);
Clock.begin();
char *wk;
lcd.init();
lcd.backlight();
int MyTemp;
while(1)
{
DateTime MyTime = Clock.read();
if (flag == 1){
if (MyTime.Second >= 30) {
++MyTime.Minute;
}
MyTime.Second = 0;
Clock.write(MyTime);
flag = 0;
}
lcd.setCursor(0,0);
lcd.print("20");
lcd_Print(MyTime.Year);
lcd.print("/");
lcd_Print(MyTime.Month);
lcd.print("/");
lcd_Print(MyTime.Day);
switch(MyTime.Dow){
case 1:wk = "Mon"; break;
case 2:wk = "Tue"; break;
case 3:wk = "Wed"; break;
case 4:wk = "Thu"; break;
case 5:wk = "Fri"; break;
case 6:wk = "Sat"; break;
case 7:wk = "Sun";
}
lcd.setCursor(12,0);
lcd.print(wk);
lcd.setCursor(0,1);
lcd_Print(MyTime.Hour);
lcd.print(":");
lcd_Print(MyTime.Minute);
lcd.print(":");
lcd_Print(MyTime.Second);
MyTemp = Clock.getTemperatureFloat();
lcd.setCursor(12,1);
lcd.print(MyTemp);
lcd.print("\xdf\x43");
delay(100);
}
}
void lcd_Print(int val)
{
if(val < 10){
lcd.print("0");
}
lcd.print(val);
}
void TimeADJ() {
flag=1;
}
lebment
发表于 2020-10-7 19:18:22
本人最近制作的一款开发板
补充内容 (2020-10-7 19:18):
https://www.bilibili.com/video/BV1VA411J7kq
腾
发表于 2020-10-9 11:27:08
五轴步进电机驱控板,核心stm32F407VET6。CAN总线,梯形S型加减速。
pythonworld
发表于 2020-10-10 21:08:12
STM32 温度湿度测量并用MQTT协议发送
一个很简单的功能用stm32采集温度传感器的数据,使用串口把数据发送给树莓派。
在树莓派上使用MQTT协议发送到MQTT服务器。可以通过手机或电脑远程获得。
补充内容 (2020-10-10 21:12):
直接使用的是STM32F103C8T6的USB虚拟串口,用一条USB数据线就可以连接树莓派。
andrewz
发表于 2020-10-16 10:53:50
感谢论坛,又获奖了