极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: lyy-cy

Arduino IDE 驱动STM32_ _ _ _ 2--硬件准备

[复制链接]
发表于 2016-12-7 08:52:22 | 显示全部楼层
emma2rlx 发表于 2016-12-6 12:44
楼主,都搞定了     但是驱动有bug 哦   IIC驱动有bug,多次读取后会引起死机。 晕死了

stm32f103的iic硬件是有bug的,这个当前一般都用模拟的方式驱动
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-7 09:00:29 | 显示全部楼层
youkebing 发表于 2016-12-6 22:04
我用这个跑了个三菱PLC,非常不错。我放在了阿莫论坛。另外Cubemx是什么东东?


跑三菱PLC,不如转过来学习下。没有阿莫账号。

CubeMx可以理解为STM32的HAL库辅助工具。百度一下,很多教程的。
回复 支持 反对

使用道具 举报

发表于 2016-12-7 09:04:43 | 显示全部楼层
lyy-cy 发表于 2016-12-7 09:00
跑三菱PLC,不如转过来学习下。没有阿莫账号。

CubeMx可以理解为STM32的HAL库辅助工具。百度一下,很 ...

在这里
http://www.amobbs.com/thread-5664217-1-1.html
回复 支持 反对

使用道具 举报

发表于 2016-12-9 11:09:03 | 显示全部楼层
此贴甚好。呼应一下!
网上对STM32F10X系列的RTC时钟有不少的议论,都觉得很不准确。有空用此板做了一下试验,觉得还不错。下面先上程序,请各位不吝赐教。
//Analog Input speed test (STM32F103C8T6 AD RTC.ino)
#include <RTClock.h>
#define LED_PIN PC13
RTClock rt (RTCSEL_HSE); //RTClock rt (RTCSEL_LSE);
int i=0,THH,TMM,TSS;
int sensorPin0 = 0,sensorValue0;//
int sensorPin1 = 1,sensorValue1;
int sensorPin2 = 2,sensorValue2;
long TimeVar;
void blink () {
  digitalWrite(LED_PIN,!digitalRead(LED_PIN));
  //RTC_GetCounter() % 86400;
  TimeVar=rt.getTime();
  if (TimeVar>86399){rtc_set_count(0);}
  THH = TimeVar / 3600;// Compute hours
  TMM = TimeVar / 60;
  while (TMM>59){TMM=TMM-60;}// Compute minutes
  TSS = TimeVar % 60;                          // Compute seconds
  Serial.print(THH);Serial.print(":");
  Serial.print(TMM);Serial.print(":");
  Serial.print(TSS);Serial.print("    ");
  Serial.print(sensorValue0);Serial.print("    ");
  Serial.print(sensorValue1);Serial.print("    ");
  Serial.print(sensorValue2);Serial.print("    ");
  Serial.println(i);
  i=0;     
  }
void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  //pinMode(sensorPin0, INPUT_ANALOG);
  //pinMode(sensorPin1, INPUT_ANALOG);
  //pinMode(sensorPin2, INPUT_ANALOG);        
  rtc_set_prescaler_load(62500); //rtc_set_prescaler_load(32768);
   rtc_set_count(43199);//11:59:59
  rt.attachSecondsInterrupt(blink);
  Serial.println("start");
}
void loop() {
  sensorValue0=analogRead(sensorPin0);
  sensorValue1=analogRead(sensorPin1);
  sensorValue2=analogRead(sensorPin2);  
  i=i+1;
}
程序里顺便把AD的读取速度测了。我用的是8M晶振分频方式,也可用32768晶振,即上面标注的LSE方式。原板上的晶振有问题,已换掉了。
回复 支持 反对

使用道具 举报

发表于 2017-3-5 20:15:09 | 显示全部楼层
youkebing 发表于 2016-12-6 22:04
我用这个跑了个三菱PLC,非常不错。我放在了阿莫论坛。另外Cubemx是什么东东?

多放些三菱PLC资料吧,学习一下
回复 支持 反对

使用道具 举报

发表于 2017-3-5 20:16:31 | 显示全部楼层
1981818001 发表于 2016-11-11 17:53
怪事,俺也用STM32来做Arduino,没有烧固件,也不用烧。

说说您咋高的,也想玩玩STM32
回复 支持 反对

使用道具 举报

发表于 2017-3-17 20:54:10 | 显示全部楼层
STM8S也应该可以吧,我不确定。
回复 支持 反对

使用道具 举报

发表于 2017-4-10 11:39:00 来自手机 | 显示全部楼层
没有图片怎么回事
回复 支持 反对

使用道具 举报

发表于 2017-6-9 10:50:03 | 显示全部楼层
请问一下这样的STM32兼容原来的ARDUINO库么?特别是U8G/U8G2的库(这2个库明确支持DUE)?
回复 支持 反对

使用道具 举报

发表于 2017-8-6 12:39:36 | 显示全部楼层
想知道一下电机的驱动方式是不是一样的啊
我的代码在nano和其他板子上运行都是正常的移植到stm32上就不正确了
回复 支持 反对

使用道具 举报

发表于 2017-10-5 12:56:44 | 显示全部楼层
利用arduino软件提取的bin文件,利用ISP成功下载程序后,选择的是Serial发现ad采集变慢了,这是什么情况请解答下,谢谢!
回复 支持 反对

使用道具 举报

发表于 2018-3-27 21:12:24 | 显示全部楼层
从TB上买了一个号称兼容Arduino的STM32小板,不用刷bootloader貌似就能用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-17 01:36 , Processed in 0.042582 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表