serial-port - 无法保存波特率设置?

标签 serial-port command microcontroller gsm at-command

我的 GSM 调制解调器默认设置为 115200 波特率。我有 PIC18 微 Controller 以 19200 波特率连接到它。我将调制解调器的波特率更改为 19200,然后保存设置,但每次重置调制解调器时,波特率都会变回 115200。

这些是我使用的以下命令。

更改波特率
AT+IPR=19200
然后我以 19200 波特率重新打开 super 终端 (Putty) 以保存当前设置。

保存设置
AT&W
但是在调制解调器重置后,波特率会变回 115200。我正在使用 M6000 GSM/GPS 模块(Tk115 Gps Tracker)但没有太多支持,这里是 datasheet以供引用。

我是否正确保存设置?

我正在考虑将我的 PIC18F87j11 上的波特率更改为 115200,但对于当前的 8 mhz 振荡器来说这是不可能的。任何反馈都会有所帮助。

谢谢!

最佳答案

一种可能的解决方法(但可能不是最佳选择)是将波特率保存到内部闪存中,然后有一个单独的线程连续设置端口的波特率。


类似的线程;

while (true)
{
  MySerialPort.BaudRate = 19200; //this will set/update baud rate
  Thread.Sleep(30000); //this will sleep for 30 seconds 
}

将每 30 秒保存一次波特率;

第一个例子

或者使用我的第一个示例(将波特率保存到闪存)

是在您的程序启动时,您读取内部闪存存储,并从存储在那里的值中分配波特率。

至于在 super 终端/等中设置波特率 - 这些只是“临时”波特率 - 有点像调谐 radio - 你可以从不同的波特率听到不同的东西 - 这就是 super 终端的工作方式 - 它不会“保存”波特率,仅将其分配临时时间(直到您关闭并打开 radio )。

至于 BootLoader,应该有一种“退出”引导加载程序模式的方法 - 查看微 Controller 的文档,因为它应该只在您更新 MC 或“闪烁”更新时开启 - 而不是不断开启(引导加载程序就像按下 PC 上的“重置”按钮)!

关于serial-port - 无法保存波特率设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410438/

相关文章:

android - 无法从 RS232 蓝牙模块读取 InputStream

c# - 带有 SerialPort 的 Windows 窗体 - 应用程序在关闭窗体后挂起

php - symfony 2命令问题

C 语法/AVR header

python - PyVISA 超时错误——通过 RS232 (USB) 与 Agilent 34970A 通信

linux - Java 类路径中 '*' 的特殊含义是什么?

Linux 询问自定义/别名命令的密码?

c - 如何在大量值列表中搜索值

embedded - AVR或PIC开始编程单片机?

c++ - 使用 C++ 从 Arduino 读取串行数据