小葱拌豆腐
获得 0 次赞
帮助过115人
#include <intrins.h> #include "config.h" #include "stdio.h"//用于调用printf函数原型 /@@* 串口配置函数,baud-通信波特率 */ void ConfigUART(unsigned int baud) { RS485_DIR = 0; //RS485设置为接收方向 g_rs485_uart_pop_ptr = 0; //当 g_uart_pop_ptr + 1 = g_uart_push_ptr 时缓存为空 g_rs485_uart_push_ptr = 1; //此处加1是指针加1,即计算下一个指针 rs485_sbuf.out_index = 0; //---- rs485_sbuf.in_index = 1; rs485_sbuf.send_runing = FALSE; ACC = P_SW1; ACC &= ~(S1_S0 | S1_S1); //S1_S0=0 S1_S1=0 P_SW1 = ACC; //(P3.0/RxD P3.1/TxD) SCON = 0x50; //配置串口为模式1 AUXR = 0x40; //定时器1为1T模式 AUXR &= 0xFE; TMOD = 0x00; //定时器1为模式0(16位自动重载) TL1 = (65536 - (FOSC/4/baud)); //设置波特率重装值 TH1 = (65536 - (FOSC/4/baud))>>8; ET1 = 0; //禁止T1中断 ES = 1; //使能串口中断 TR1 = 1; //启动T1 EA=1; } 当调用这个ConfigUART(unsigned int baud);写入9600、57600时通过串口助手接收发关送数据正确,当写入115200时通过串口助手接收发关送数据不对 如果把上面的 TL1 = (65536 - (FOSC/4/baud)); //设置波特率重装值 TH1 = (65536 - (FOSC/4/baud))>>8; 改为: TL1 = (65536 - (FOSC/4/115200)); //设置波特率重装值 TH1 = (65536 - (FOSC/4/115200))>>8; 时通过串口助手接收发关送数据正确。 请各位大神指教函数那里错了!!!!!
gd25q64CSIG与AD24C64有什么区别?求一段GD25Q64CSIG的驱动例程?谢谢……
读取从机数据,从机指令为5位的一个数据,但是看到stm32寄存器只能8位或者16位的发送,请教一下该怎么解决这个问题。从机只有识别到有效的输入才会有响应,所以在高位加3个零不可行,请教大神
最近设计一块电路,采用MAX485芯片,后面需求方提出要带90多个从机,想问一下大佬们,主机用MAX487能带的动那么多个MAX485吗?
BMS控制电池正端和控制BMS控制电池正端和控制负端各有哪些优缺点负端各有哪些优缺点 BMS控制电池正端和控制负端各有哪些优缺点.png (111.17 KB 下载次数: 0) 下载附件 保存到相册 2020-11-25 09:18 上传