导航:首页 > 操作系统 > pic单片机串口接收

pic单片机串口接收

发布时间:2022-05-18 04:44:14

① pic单片机与电脑串口通信不正常:工作一段时间后电脑vb串口程序无法接收到数据,但单片机一直正常工作。

1. 是否使用了USB转串口?如果使用了的话,换一台有串口的台式机试试看,如果好了的话,可能是转接线有问题;
2. 不打开VB应用程序,只使用串口助手接收数据,如果有通信协议的话,挑一条可以固定应答的报文循环发送接收,看发送/接收字节数的比率,正常的话会是一个定值,没问题的话,证明下位机应用层到上位机链路层是没有问题的;
3. 现在只剩下VB软件了,VB我不会,但是我用VC写过类似的东西,我认为可能是你的软件接收不及时导致了串口接收缓冲区满或者报文接收出现偏差,最好设计一个完备的通信协议,每次通信都要有可靠的缓冲处理、校验处理、应答处理和错误重试处理,一次应答结束后及时清除接收缓冲,这样能保证可靠、持续的通信。
我只提供解决问题的思路,不替代你解决问题,希望能有所帮助,呵呵。

② 求pic18单片机串口接收多字节代码

#include <p18cxxx.h>
#pragmaconfigOSC=HS,OSCS=OFF
#pragmaconfigPWRT=OFF,BOR=OFF
#pragmaconfigWDT=OFF
#pragmaconfigDEBUG=ON
#pragmaconfigLVP=OFF
volatile unsigned charreceiver_buffer;
void usart_isr(void);
#pragma code low_vector=0x18
void low_interrupt (void)
{_asm
goto usart_isr
_endasm
}
#pragma code
#pragma interruptlow usart_isr
void usart_isr (void)
{receiver_buffer=RCREG;} //中断入口就是要求放一个GOTO 跳转指令,中断服务函数用关键词定义,
void main(void)
{while(1){
//IO 初始化
//RB0,RB1,RB2,RB3->output
//RC6,RC7 ->input
PORTB=0x00;
TRISB=0x00;
TRISC=0xc0;
//波特率初始化9600
//Fosc=4MHZ
//BRGH=1
SPBRG=25;
//串口工作方式使能
TXSTAbits.SYNC=0;
TXSTAbits.BRGH=1;
TXSTAbits.TX9=0;
RCSTAbits.SPEN=1;
RCSTAbits.RX9=0;
//中断使能
INTCONbits.GIE=1;
INTCONbits.PEIE=1;
PIE1bits.RCIE=1;
PIE1bits.TXIE=0;
//接收使能
RCSTAbits.CREN=1;
while(1){
//判断接收字节是否为0x55
//是,点LED
//否,继续等待
if(receiver_buffer==0x55){
PORTBbits.RB0=1;
//发送使能
TXSTAbits.TXEN=1;
TXREG=0x55;
}
else
PORTBbits.RB0=0;
}
}
}

③ pic16f877a系列单片机串口接收中断屏蔽后,若外部有串口数据不断的发入,单片机会溢出出错吗!

各种通讯界面, 都会有溢出出错问题. 硬件设计上, 会提供Register状态判断, 以及错误处理控制bit, 如内部串口模块的reset. 实际如何处置, 需要详阅datasheet.
溢出出错是否要处理, 依据需求而定, 如果你根本不需要串口(屏蔽), 不去处理溢出出错也没关系. 如果还需要使用串口, 应该要注意如何将单片机的串口模块, 从恢复错误状态中恢复.
在基本的设计逻辑上, 会建议系统的规划, 应避免去屏蔽任何一个你需要的中断源. 当然, 如果你很清楚自己在做什么, 有特殊考量, 也不是不可以的.
ps. 部分单片机的内部模块, 具备各自独立的电源控制, 如不需要, 也可以考虑关闭其电源. 在电池系统中, 这部分会比较注意. (模块没有电源, 有没有持续输入就无差别, 启动时同reset)

④ pic18F单片机串口USART接收的问题

在允许串口中断的情况下,当缓冲器接收完一个完整的字节,而且ri=0,则会将缓冲器内的数值保存到sbuf寄存器中,并且ri置1,产生中断请求。如果缓冲器没有接收完一个完整的字节(没有收到停止位),或者接收完一个完整的字节时ri=1,则不产生中断,不将缓冲器内的值保存到sbuf,接收到的数据帧丢失,不再恢复。

⑤ PIC单片机串口接收进不了中断,发送正常

接收中断要在中断函数内用RCIF查询

⑥ 求助关于PIC单片机串口中断的接受和发送问题

你在主函数中先把RCIF标志位清零,你做的应该是SCI串行通信吧,一上电,就表示程序开始执行了,你程序一开始执行就是要进行SCI串行通信,当然一开始就进入中断了,如果你不想这样,你可以连一个按钮,当此按钮按下后就进入中断执行SCI通信

⑦ pic单片机用串口发送接收数据

当接收到数据时,RCIF会被置1,如果读了接收结果RCREG,则系统自动会把RCIF清0。
程序把清RCIF语句屏蔽了,但TXREG=RCREG;这一句就是读接收结果(把接收结果RCREG送到发送寄存器TXREG里),所以会自动让RCIF清0,只有新数据来时,RCIF才会置1,才能再进入中断。
如果把发送的语句改为TXREG=0X12(或其他不是RCREG的寄存器的变量),因此中断后没有读取接收数据,也就不能清RCIF,RCIF仍然为1,即中断服务程序退出后,还存在的中断请求,因此就会马上进入中断,从而出现不停的发送数据的现象。
解决的办法有2:
1、让原来屏蔽的语句RCIF=0有效;
2、空读RCREG,如定义一个变量A(unsigned char A),在发送数据后或前,增加A=RCREG就可以了。

⑧ PIC单片机与电脑串口通信

//串口初始化
void usart_init()
{
TRISC = 0xFF; //设置C口方向全为输入
RCSTA = 0x90; //使能串口工作,连续接收
TXSTA = 0x24; //设定TXSTA寄存器。
SPBRG = 0x19; //4MHZ, BRGH=1, 9600BPS
INTCON = 0xC0; //开放全局中断,使能外部中断
RCIE = 0x1; //使能USART接收中断
}

这样配置 还有就是中断配置了 这个我认为你的接受与发送的数据一样说明你的中断在你加一处理以前动作了 明白吗?在仔细看一下,尤其是PIC的中断系统结构!

⑨ PIC单片机问题 串口传输数据,感觉一直在中断程序里面门都进不了主循环。

unsigned char rev_data = 0;
unsigned char send_data = 0;
void interrupt ISR()
{
if (RCIE & RCIF) //判断是否为串口接收中断
{

rev_data = RCREG; //将接收缓存器中数据读取出来
if(TRMT == 1)
{
TXREG = rev_data;
}
PORTD = ~PORTD;
}
}
单片机最好不要直接寄存器的值赋给寄存器,对串口接收中断必须将缓存器数据读取出来才能清空。另外main函数中while(1)当中要作长延时,不然数据看不到你从串口助手发送后,单片机返回的数据,你尝试一下,不能保证一定可以。

⑩ 关于PIC单片机串口通讯问题

嗯 如楼上 有条件的话 直接用示波器来看(研发的话 应该是有的)
不过感觉看来 应该是波特率的问题 单片机那边设置波特率都是用定时器来的
到底设置的误差有多大 串口数据一般是LSB低位先出 一端用A'来发数据 而另一端读串口数据的时候用波特率A对应的频率来扫描串口端得数据 从你的“ 如发0x9F他收到得就变成0X1F ” 画出波形分析 前5个bit不出错 累积到第6个bit 出问题 可以算出 你发的波特率 和接受的波特率的关系 也就可以理解为什么是高位出问题
也就是说 码元周期(波特率倒数)是相差一些的 因为我不知道 你说的“ 如发0x9F他收到得就变成0X1F ” 里面哪个数据是按确定的标准来处理的
但是提示这些的话 你自己应该可以察觉一些东西出来了 反过去算

还有你说的换有牌子的转换器会正常 我想应该只是好一点吧 因为牌子的转换器可能是对电平跳变处理的好一些 就是那些上升沿 下降沿 比较陡 这样的话对有误差的异步串行数据的识别是有好处的 但是误差还是在那里 没有从根本上解决

http://hi..com/xiasanming/blog/item/b09a59dffc8a074e94ee3788.html
这是我自己写一点关于UART串行数据的 希望对有用

阅读全文

与pic单片机串口接收相关的资料

热点内容
国什么app 浏览:366
rtk文件夹没了怎么办 浏览:187
饥荒安卓闪退怎么办 浏览:635
python二次开发cad 浏览:304
程序员直播机器人舞团 浏览:769
devc指针编译问题 浏览:1002
支持dsd硬解压声卡 浏览:771
怎么查看u盘加密区 浏览:184
台电加密是什么格式 浏览:158
php论坛版块在哪个文件夹 浏览:442
暗黑的服务器为什么维护 浏览:624
android内存溢出的原因 浏览:18
标志307的压缩比是多少 浏览:636
服务器启动为什么叫三声 浏览:997
追风筝的人英文pdf 浏览:940
解压小熊手机壳 浏览:348
成都市区建成面积算法 浏览:662
智能家居单片机 浏览:98
买男装用什么app好 浏览:857
文件夹合并了怎么拆开 浏览:262