arduino stm32 校园卡签到机-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4711|回复: 2

arduino stm32 校园卡签到机

[复制链接]
发表于 2018-11-11 01:16 | 显示全部楼层 |阅读模式
刚开始是使用nano做的,按着例程做没有任何问题,很快就做好了。想再添加一个屏幕,加了ssd1306的库之后动态内存就超了20%。有两个路可以选择,一是优化程序,二是选用更高级的芯片。试着优化了一下,有点难度,就想用stm32c8t6.从此悲惨的经历开始了。废话不说下面是极客工坊一位老哥的帖子,很详细帖子,为了大家方便给大家粘贴上来了         原址:
https://www.geek-workshop.com/forum.php?mod=viewthread&tid=27452
本帖最后由 迷你强 于 2017-4-30 10:10 编辑


【玩STM32】如何用arduino语法来玩STM32(一)
本项目开源方案源自:https://github.com/rogerclarkmelbourne/Arduino_STM32 特此申明
大家都知道STM32系列芯片属于那种价格便宜量又足的处理器,速度搜搜的还资源足,非常适合做一些相对于复杂比较消耗系统资源的项目,各arduino系小伙伴眼红不已,本系列文章就讲解下如何在arduino代码体系下使用STM32
首先介绍硬件平台,因为暂时我们没有开发基于STM32的alpha硬件环境,所以就在淘宝随便买了一款。
此款主板使用STM32F103C8T6处理器,外面扔了一堆的IO口,并且将USB口接出来了。属于做工比较粗糙但是价格便宜的产品(注意LED灯标示为PC13,就是说这颗灯接在了PC13管脚上)
首先我们要准备好将普通的STM32板子变成支持arduinoIDE的设备,所以要下载bootloader
下载工具: down.zip (61.66 KB, 下载次数: 1580)
bootloader: bootloader.zip (58.77 KB, 下载次数: 1317)
两个压缩包,第一个包包是用来下载bootloader的下载工具,第二个就是bootloader文件本省啦。
新买的板子一般都没有预制arduino用的bootloader,所以我们先要找个usb转TTL电平的UART硬件(就是TTL串口)来给下载一下,推荐OCROBOT alpha CP2104
阅读STM32 C8T6的手册得知,这款芯片的串口在PA9(TX)和PA10(RX)上面,然后我们将他与串口模块进行连接,并且将BOOT0的跳线设置为1,这样就进入了串口编成模式(接线图如下表)
[td]
STM32CP2104
PA9RX
PA10TX
5V5V
GNDGND
如下图

这样就可以开始下一步了,之前我们下载好的两个文件,首先解压缩down压缩包,里面有两个工具,其实是一样的一个python文件,一个exe文件,我们用exe的
假设我将文件解压缩到了D盘,目录是D:down
然后解压缩bootloader目录,里面有很多的文件,其实也都是一样的,后面的后缀,代表LED灯默认接在了哪个管脚,其实区别不大的,我们的板子刚好是PC13就将generic_boot20_pc13.bin这个文件复制到down目录下
看起来是这样的
好了,正式开始下载bootloader,首先我们按 徽标键+R 打开启动菜单,输入cmd回车
会出现一个命令窗口
然后我们将目录切换到刚才文件夹放置的位置,首先切换到D盘 输入 D: 回车
再输入 cd down  回车
接下来我们就开始下载固件咯,输入命令 stm32flash.exe -w generic_boot20_pc13.bin -v -g 0x0 COM14  其中COM14是我的串口设备的设备号,请根据自己的实际情况确定
这样就下载好了,将线头都拔干净,并且将跳线恢复,这些东西基本都用不着了,目前USB接口就正常可用了。
开始使用arduino版本的STM32
首先,要去装驱动,因为你接到电脑上是这个德行的
下载这个驱动包: drivers.zip (15.03 MB, 下载次数: 6805)
解压缩后是这个德行的,双击红圈的文件,然后遇到授权提示全部点是 就会给你装好
装好后就变成这样了
这样就OK咯。。。
IDE部分介绍
先下载OCROBOTO IDE: http://www.ocrobot.com/doku.php?id=zh:downloads
下载最新版本即可

当然啦,先打开我们的IDE
打开工具菜单下的开发板管理器,安装STM32系统支持
点击安装STM32支持包
耐心等待,等进度条消失就安装完毕
然后就可以选择板子啦,我们选择F103C系列板卡
子选项卡也很简单,第一项选择C8系列板卡,通讯方式选择bootloader
第一次端口不会出com口号,所以不用选择,直接下载程序好了
程序

  • void setup() {
  •   pinMode(PC13, OUTPUT);
  • }
  • void loop() {
  •   digitalWrite(PC13, HIGH);
  •   delay(1000);
  •   digitalWrite(PC13, LOW);
  •   delay(1000);
  • }

[color=rgb(51, 102, 153) !important]复制代码



下载成功,会有一个提示找不到文件的错误,不过没有任何影响啦,管脚遵循了STM32的表示方式,其他基本没区别

硬件效果
我们再来测试下串口通信看看是否好用(注意,刚才通讯过后,设备会有端口号了,注意在板卡选项卡里选择上)

  • void setup() {
  •   Serial.begin(9600);
  • }
  • void loop() {
  •   Serial.println("hello OCROBOT~!");
  •   delay(1000);
  • }

[color=rgb(51, 102, 153) !important]复制代码



测试效果

在这里我进行一下补充,本人的两台电脑都打不开这个下载程序的软件,无解。最后还是用实验室朋友的电脑下载的。网上找的资料说可以用其他的串口下载软件来下载,但要把二进制改为16进制。本人没有尝试,如果你的电脑也不能运行,你可以尝试一下。
然后我说一下是stm32引脚,我们刷入的是maple的固件,固件里spi和iic引脚已经修改,我们只需要看原理图把线子和板子硬件引脚连起来,不能连错。特别注意的是cs引脚自己要重新配置一下,如果不手动拉低的话,引脚会输出高电平。
我把rc522读卡模块配置好后,一会能用一会不能用。我从网上找了一个,没有采用官方的库,但也和官方的库一样,应该是以前的库,很好用。示例里面的一会能用一会不能用,快把我给搞崩溃了,sd卡也是这样,但sd卡应该是我配置的问题。
手动配置cs和复位,关闭在stm32中尤为重要
pinMode(chipSelectPin,OUTPUT); // Set digital pin 10 as OUTPUT to connect it to the RFID /ENABLE pin
    digitalWrite(chipSelectPin, LOW); // Activate the RFID reader
    pinMode(NRSTPD,OUTPUT); // Set digital pin 5 , Not Reset and Power-down
网上说sd卡模块修改cs引脚是通过定义这个chipSelectPin,可能这是之前的库,最新的库是在下面PB5那个地方修改,这我是打开了库函数才发现的,sd卡的cs接的PB5上,sd的初始化要修改成下面的样子
if (!SD.begin(PB5)) {
    Serial.println("initialization failed!");
    return;
  }
再说一下连线
SPI
SCL  PA5
MISO PA6
MOSI PA7
SD_CS PB5
RC522_CS PA3
RC522_RST PA2


IIC
SCL PB6
SDA PB7

LED
RLED PA8
GLED PA10
BLED PA9
其他的没什么好说的,我会上传用到的所有资料和我写的代码
第一次写博客,不知道怎么添加图片,实验室一位漂亮的小姐姐还帮我设计出了外壳,用紫色的pla打印的,贼好看,很迷你




L)37Q654GK}X(0N(VR`9%UH.jpg
5C0DYSCJ6}S]HTZDB~O7RS3.jpg
H9FVT@G4$LDV9AOATH{7_YV.png
 楼主| 发表于 2018-11-11 01:24 | 显示全部楼层
stm32程序
https://www.arduino.cn/forum.php?mod=viewthread&tid=82567&fromuid=138843
(出处: Arduino中文社区)
程序在下个帖子里
发表于 2018-11-19 22:29 | 显示全部楼层
刘开放310 发表于 2018-11-11 01:24
stm32程序
https://www.arduino.cn/forum.php?mod=viewthread&tid=82567&fromuid=138843
(出处: Arduino中 ...

直接零知的板子,一键下载,不用这么麻烦:http://www.lingzhilab.com/forum. ... &extra=page%3D1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:50 , Processed in 0.092120 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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