完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个PIC32毫米通过UART与BT模块RN4020连接,目前正在努力与它的配置。它使用AT命令格式命令+CR+LF(或对应应答+CR+LF)。首先,模块通过特殊的信号线设置为命令模式,启动后在MCU的RX线路上给出“CMDRN”。我使用的是MPLAB IDE提供的默认NIFTY函数,这些函数是基于循环缓冲区填充的逐字节DurnGrx中断例程,我想我已经掌握了它们如何工作的简单原理。甚至还有一个整洁的函数读缓冲区(目标字符串,读取的字节数),WHIC。H从RX Cyc Buff读取给定的字节量到给定的char数组(缓冲器,字符串),然后进行处理。发送命令。我需要信号的时候,从模块的答案是完全阅读在MCU -换句话说,什么时候调用ReadBuffer函数,所以它给了我正确的字符串回,我可以确信,我的CALL Read Buffic(MyOxTrimeString字符串,5)和MyOxAdtryString包含“CMDRN”。我不想错误地移动头部和尾部指针,弄乱结构。某种时间是一种很好的继续进行的方式,还是当CR和LF来的时候创建一个指示符标志和(unn)它更好?感谢任何想法或提示提前。在发现,答案的家,某种类型的字符串比较可能足以检查它是否是我所预期的。(狡猾的可能是‘0’字,但我会尽量记住这一点。” 以上来自于百度翻译 以下为原文 I have a PIC32MM connected via UART with BT module RN4020 and currently struggling with it's configuration. It uses AT-command format COMMAND+CR+LF (or corresponsive ANSWER+CR+LF). First, the module is set via special signal line into Command Mode, which after boot-up gives "CMDrn" on MCU's RX line. I am using default nifty functions provided by MPLAB IDE, which are based on circular buffers filled byte by byte during RX interrupt routine and I think I've already grasped the simple principle of how they work. There even is a neat function ReadBuffer(target string, num of bytes to read) provided, which reads given amount of bytes from the rx circ buff into a given char array (buffer, string) to work with then. My question is - what might be the best way to wait for and recognize a correct answer and then after it came and is checked, which means the module is ready for a command to be send via TX line, send a command. I need to signalize the moment when the answer from the module is fully read in MCU - in other words, when to call the ReadBuffer function so it gives me correct string back and I can be sure that I call ReadBuffer(my_target_string, 5) and my_target_string contains "CMDrn". I don't want to move the Head&Tail pointers unnecessarily wrongly, and mess up the structure. Is some kind of timeout a good way to proceed or is it even better to create some indicator flag and (un)set it when CR and LF come? Thanks for any ideas or hints in advance. After finding out, that the answer's home, some sort of string compare might be enough to check if it is what is expected I think. (Tricky might be ' |