请教arduino蓝牙模块连接 Due如何与SD卡连接

arduino_can
说明:&&arduino due 使用can通信自发自收的例程,需要使用外接can模块(arduino due us canbus)
文件列表:
arduino_can\arduino_can.ino
arduino_can
近期下载者:
相关文件:查看: 5832|回复: 6
求助,如何让arduino播放sd卡中的音乐
在下是新手,之前看了论坛里的几个帖子,现在能够用simpleSdAudio库并通过串口监视器输入信息让蜂鸣器播放音乐。但我想知道,比如我做了一个小游戏,然后怎样实现在不同的条件下(通关成功或者失败),让单片机做到用蜂鸣器播放sd卡里的不同 的音乐?而且这样的话对我玩游戏的体验会不会有影响(比如闪屏什么的)
请大神指点,谢谢!
会有影响,放音乐的时候不能做其他事情,除非非常短的音效,这样用户不会感觉太大的影响.
鉴于目前Arduino控制器的白菜价格与迷你的身材,你可以用另一个控制器与TF卡组成播放器,通过串口与主控制器通信,主控要放音乐,输出个字符就不用管了。
whtech 发表于
会有影响,放音乐的时候不能做其他事情,除非非常短的音效,这样用户不会感觉太大的影响.
嗯,那比如说我做了一个贪吃蛇的小游戏,然后想在玩的时候播放背景音乐,怎样才能做到呢?如果音乐用tone()函数的话,怎么做到和游戏的主体程序同时运行。是不是也不能同时运行
XNNN_ 发表于
嗯,那比如说我做了一个贪吃蛇的小游戏,然后想在玩的时候播放背景音乐,怎样才能做到呢?如果音乐用tone ...
用独立的mp3模块,或者两块arduino协作,哈哈。
可以用wtv020sd模块
Powered by查看: 6152|回复: 14
Arduino DUE 串口缓冲区 只有64字节 不够用 怎么办?
用Arduino DUE与703N进行通讯,串口缓冲区只能有64字节,最后一个字节还是空,不够用的 能否像1.0.5版本那样修改串口缓冲区的size?DUE用的是Arduino 1.5.6版本,阅读了core代码 没有找到哪里能够修改,请高手赐教!
&arduino&\hardware\arduino\avr\cores\arduino\HardwareSerial.h
當中設定:#if (RAMEND & 1000)
&&#define SERIAL_BUFFER_SIZE 16
#else
&&#define SERIAL_BUFFER_SIZE 64
#endif复制代码但未試過修改, 不知是否有效.
Super169 发表于
\hardware\arduino\avr\cores\arduino\HardwareSerial.h
这个试了一下 还是被截断了。
另外在sam文件夹下面没有找到类似修改的地方
不推荐改arduino库源码,你可以选择buffer满的时候等待,或者自己再后面接1层大buffer。
pathletboy 发表于
不推荐改arduino库源码,你可以选择buffer满的时候等待,或者自己再后面接1层大buffer。
我是新手,编程的东西很多都不懂,从703N传过来的内容比较多,具体我应该怎么做呀?
lien 发表于
我是新手,编程的东西很多都不懂,从703N传过来的内容比较多,具体我应该怎么做呀?
你是收缓冲区满的话,那就赶紧收了,处理,如果发满的话,那你自己把你的数据包切成最大64字节1组,根据你的波特率,加入延时后循环发送。
pathletboy 发表于
你是收缓冲区满的话,那就赶紧收了,处理,如果发满的话,那你自己把你的数据包切成最大64字节1组,根据你 ...
是个思路 实在不行 我就准备切开 做多次交互了 不过这样相对会复杂很多
lien 发表于
是个思路 实在不行 我就准备切开 做多次交互了 不过这样相对会复杂很多
缓冲就这么多,别说你单片机,就连台式机底层也是分包的,只不过比较大,能到2K 4K。
本帖最后由 Super169 于
23:09 编辑
其實不修改庫, 也可以自建更大的 buffer.
只要在 SerialEvent 中, 不斷把資料讀出, 再放進另一個 buffer 就可以了.&&
要珍惜那珍貴的 SRAM, 但樓主用的是 DUE, 有 96K SRAM, 應該很夠用了.
我用due做串口读取,也遇到类似楼主的问题,
据说SerialEvent 不是一个实时中断,它仅仅在2次loop循环中执行一次中断,由于我的loop中包含多次延时,一次loop循环时间中,即会导致串口缓存满了,然后loop循环好像强制退出,跑去执行SerialEvent, 等SerialEvent 执行完,它又没有返回loop的断点位置,反而又从头还是执行。头疼了很久,后来只有设法减少串口接受数据。
\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp
修改的文件不对,应该是以上文件,已验证可以。
本帖最后由 mc.six 于
19:59 编辑
lien 发表于
是个思路 实在不行 我就准备切开 做多次交互了 不过这样相对会复杂很多
不好意思发错了
本帖最后由 mc.six 于
20:02 编辑
pathletboy 发表于
你是收缓冲区满的话,那就赶紧收了,处理,如果发满的话,那你自己把你的数据包切成最大64字节1组,根据你 ...
请教一下,怎么才能快速收下来。我有个串口传过来的数据有450个字符(ASCII码),发端是GSM模块一个命令的输出,不可能截断。我试了& &
Serial1.println(&AT+CENG?&);
& &delay(100);
& &CELLMSGt=&&;
while(Serial1.available())
& &CELLMSGt+=char(Serial1.read());
& &delay(1);
第一次什么也收不到,第二次就收全了,把这段代码放到别的的程序里当子程序就又不行了。
我缓冲区设的是128还请指教!!!
本帖最后由 pathletboy 于
23:56 编辑
mc.six 发表于
请教一下,怎么才能快速收下来。我有个串口传过来的数据有450个字符(ASCII码),发端是GSM模块一个命令 ...
请调整你的程序逻辑,尽量减少忙等待(delay函数),使得处理器尽可能高效的从缓冲区取出数据进行处理,一个正常的业务逻辑中,是不该含有忙等待的。
mc.six 发表于
请教一下,怎么才能快速收下来。我有个串口传过来的数据有450个字符(ASCII码),发端是GSM模块一个命令 ...
请问楼主解决了没有?遇到了同样的问题
Powered by【图片】【arduino】求急!arduino外接SD模块始终无法读取SD卡_arduino吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:55,525贴子:
【arduino】求急!arduino外接SD模块始终无法读取SD卡收藏
这问题困扰了我们三天三夜了,但问题出在哪里始终找不到
arduino, 750多家厂商代理,100多万种现货库存,当天出货,免费送货.
我们用的是arduino MEGA2560的板子,外接了一块SD shield,但是在程序里一直读取不到CS的信号,导致SD连接失败这是买的SD shield,参考了一些大大们的解决方案,端口是这么接的。3.3V供电,CS 接53,MOSI接50,MISO接51,SCK接52,两个地都接了板子上的地
这是arduino 的程序,因为比较多,我就截了关于SD部分的程序这是头文件开始设置SD一些参数,这里给的CS是53端口这里是定义了一个Pinmode(),我不太清楚这个SPI定义是否有必要重点是这个!!如果sd.begin(CS)为0,那么显示&initialization SD failed!&,我们看了这句话大概有三天了。
用串口监视器查看,总是到if(!SD.begin(chipselect)),就读不到CS的信号。一般在10~15S才有反应,也不知道是在挣扎还是怎么。。不知道SD.begin()返回值是什么,我觉得在这个程序里的设置是读取CS信号为0,那么就显示连接失败。考虑过很多可能性,比如电平不稳定,用万用表分别测过SD shield CS端和2560 53端,CS稳定在3.3V左右,看资料似乎这个SD就是在3.3V下工作的,53端稳定在5V,之前的PINMODE(53,OUTPUT)看不太懂,会不会有电平低所以读取不了的现象?其他也试过很多,比如把MOSI和MISO连接端口调换,然后奇迹就在别人身上发生了,对我们并无卵用;头文件也换过,或许换的不对?听说2560对2G以上的SD卡不太支持,现在手上有2张8G卡,一张1G卡但格式化不了,还有一张256MB的小卡,用的FAT32的快速格式化,但没有什么反应。现在买了一块2G卡,正在快递小哥手上,或许是格式化错误?玩过arduino库里自带的SD读取例子,有过连接成功,但是一般在15~20S后就断了连接,然后又连又断,又断又连,反反复复,藕断丝连,因为是用11~13端口,如下。换了51~53就一直无法连接了。也换过2560的板子。。。(哭)哎,已经没有头绪了,各位热心的大大们有么有什么想法?把小弟我解救粗来。。
换 sd 卡我遇到过一张卡死活读不出来的情况最后也没有搞定
楼主,你解决了吗?我也遇到同样的问题,实在是找不出来原因
楼主解决了吗?我也是这张卡
我已经搞定啦,我2560的接线问题
我以前也这样,杜邦线完全没问题,放在洞洞板就跪了,后来才知道是信号线干扰问题,解决了之后可以直接读32g
Deal ALL, 我這幾天也是弄了很久,以下有些心得分享第一,請先確認一下各Pin角是否是對的. 可加上小弟的一小段程式..// List Pin Mode
Serial.print(&SS_PIN-&&);
Serial.println( SS_PIN );
Serial.print(&MOSI_PIN-&&);
Serial.println( MOSI_PIN );
Serial.print(&MISO_PIN-&&);
Serial.println( MISO_PIN );
Serial.print(&SCK_PIN-&&);
Serial.println( SCK_PIN );第二,某些版子PIN腳對了後,基本上都會接一條共同的接地到主板上,請拿掉試看看,可能就可以讀取與寫入了喔~第二的問題在我快要放棄時,先拔掉了那個GND線後就成功了(之前都是先拔掉那些MISO,SCK,MOSI的線呀......
登录百度帐号没有更多推荐了,
不良信息举报
举报内容:
【Arduino】SD卡模块
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 arduino蓝牙模块连接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信