俺使用SPCOMM,一切正常,BaudRate:=460800就能支持,例如现在的EDGE Modem
一、指令模式的进入
第一种进入方式——正常使用(已经上电)中,把第5 引脚“SET”置低电平;
第二种进入方式——断电, 引脚“SET”引脚先置低电平再重新上电。
这两种方式都能使模块进入AT指令模式,释放(“SET”引脚不接低电平)则退出指令模式。退出指令模式后,如果更改了模块功能,则会切到相应的功能态。
第二种方式固定以9600,N,1 的串口格式进入AT。
二、指令说明
1、 AT
测试指令
例: 发给模块指令“AT”,模块返回“OK”。
2、 AT+Bxxxx
更改串口波特率指令。可设置波特率为1200bps、2400bps、4800bps、9600bps、19200bps 、38400bps 、57600bps 和115200bps。出厂默认为9600bps。
例: 设置模块串口波特率为19200bps ,请发给模块指令“AT+B19200 ”,模块返回
“OK+B19200”。
波特率为 9600 BPS,每一位,占用的时间,是:t1 = 1/9600s。
无论数据帧是10位,或是 11 位,它的每一位,占用的时间都是:t1 = 1/9600s。
想要兼得,就不要分开设置,参考如下:
TMOD = 0x21; 定时器1工作模式2,定时器0工作模式1
……
……
为了确保51单片机和PC串口通讯的准确可靠,T1的计数初值(包括TH1和TL1)与波特率的确定密切相关,而晶振的频率与如何计算T1的计数初值密切相关。TH1和TL1的值可以根据晶振的频率和波特率的值来进行计算的,也可以通过波特率来确定晶振的频率和T1的计数初值。单片机与PC一般是异步通讯,如果T1工作在方式2,那么只要计算TH1的值就可以,其计算公式为:
TH1 = 256-fosc.(SMOD+1) . /384.波特率,HL1 = TH1。
如果T1工作在方式1,那么TH1和TL1都必须参与计算.。.
用命令mini -s 可以进到串口的设置界面 一般串口的Serial Device 值是填/dev/ttyS0 然后设置一下Bps/Par/Bits 保存,根据提示登陆串口即可
首先说明波特率1400的设置在VB中报错.
VB的MSCOMM控件使用其属性Settings来进行设置并返回波特率、奇偶校验、数据位、停止位参数。
Settings 属性
设置并返回波特率、奇偶校验、数据位、停止位参数。
语法
object.Settings[ = value]
Settings 属性语法包括下列部分:
部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
value 字符串表达式,说明通讯端口的设置值,如下所述。
说明
当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。
Value 由四个设置值组成,有如下的格式:
"BBBB,P,D,S"
BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。value 的缺省值是:
"9600,N,8,1"
下表列出合法的波特率:
设置值
110
300
600
1200
2400
9600(缺省)
14400
19200
28800
38400
56000
128000
256000
先关闭串口,修改好后开启;正在通信时不可以修改。用个函数,使用固件库
void USART_Config(uint32_t baud)
{
USART_InitTypeDef USART_InitStructure;
USART_Cmd(USART1, DISABLE);
USART_InitStructure.USART_BaudRate =baud
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_SBits = USART_SBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
USART_Cmd(USART1, ENABLE);
}
uint32_t baud_table[]={2400,4800,9600,115200,~~~~~~~};
定义个波特率表,根据外部触发或外中断 更改索引 用新的波特率值传给baud参数,调用这个函数
标准的51系列单片机只与定时器1有关(其中的如89C52还可用定时器2产生),STC的新型单片机还有独立波特率发生器,就不需要定时器参与了.这都是由硬件决定了的,常见单片机的串口波特率都与T0无关.