头像-8803

小葱拌豆腐

  • 北京市北京市
  • FPGA/CPLD

个人成就

获得 0 次赞

帮助过115人

51单片机手动设置波特率收发数据不对

#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; 时通过串口助手接收发关送数据正确。 请各位大神指教函数那里错了!!!!!

为啥protel的3D中有的显示元器件有的却不显示?

主芯片不显示,显示的器件能看到,不显示的为什么都是这种块状显示? 红色的圈是器件没有正常显示的

单片机串口通信程序书写中,P端口要一一对应吗?

单片机串口通信程序书写中,P端口要一一对应吗?

gd25q64CSIG与AD24C64有什么区别?求一段GD25Q64CSIG的驱动例程?谢谢……

gd25q64CSIG与AD24C64有什么区别?求一段GD25Q64CSIG的驱动例程?谢谢……

SPI与从机通信问题,从机指令不是8位或16位

读取从机数据,从机指令为5位的一个数据,但是看到stm32寄存器只能8位或者16位的发送,请教一下该怎么解决这个问题。从机只有识别到有效的输入才会有响应,所以在高位加3个零不可行,请教大神

RS485通信采用MAX487能带128个MAX485吗

最近设计一块电路,采用MAX485芯片,后面需求方提出要带90多个从机,想问一下大佬们,主机用MAX487能带的动那么多个MAX485吗?

BMS控制电池正端和控制负端各有哪些优缺点?

BMS控制电池正端和控制BMS控制电池正端和控制负端各有哪些优缺点负端各有哪些优缺点 BMS控制电池正端和控制负端各有哪些优缺点.png (111.17 KB 下载次数: 0) 下载附件  保存到相册 2020-11-25 09:18 上传

输出四路相位差。90时钟信号。寻求方法

输出四路相位差。90时钟信号。寻求方法