完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是我用pic写的串口发送程序,我程序中发送一次0xff 但是示波器检测到 一直重复发送0xff 是哪里出错了
#include #include #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void init(); uint flag=1; void main() { init(); if(flag) { TXREG=0xff; while(!TRMT); flag=0; } TXEN=0; while(1); } void init() { TRISC=0; SPBRG=12; //波特率9600 BAUDCON=0x08; TXSTA=0x24; //使能串口发送 RCSTA=0x80; TXEN=1; SPEN=1; RCIF=1; //TXIE=0; CREN=0; GIE = 1; } |
|
相关推荐
5个回答
|
|
__CONFIG(0x3B31);内容是什么,看门狗有没有关闭?
|
|
|
|
我现在改了下__CONFIG(WRT_OFF&PLLEN_OFF&STVREN_ON&LVP_ON); 自己配置 while(1) { asm("clrwdt"); } 看门狗在发好数据之后关闭了 数据确实不会一直发送了,但还是会出现2,3次复位现象 就比如我要发一长串数据,它会先把数据前面几个重复发几次 然后再发完整的数据 |
|
|
|
这是我完整程序 我感觉看门狗中间是不是又进行复位了 但是我尝试了 多加几次关闭看门狗 但是没用 #include #define uchar unsigned char #define uint unsigned int //__CONFIG(FOSC_INTOSC&WDTE_ON&PWRTE_OFF&MCLRE_OFF&CP_ON&BOREN_ON&CLKOUTEN_OFF&IESO_OFF&FCMEN_OFF); __CONFIG(WRT_OFF&PLLEN_OFF&STVREN_ON&LVP_ON); void init(); void main() { init(); TXREG=0xfe; TXREG=0x5c; while(!TRMT); TXREG=0x02; TXREG=0x1c; while(!TRMT); TXREG=0x01; TXREG=0x03; while(!TRMT); TXREG=0x0a; TXREG=0x01; while(!TRMT); TXREG=0x52; TXREG=0x38; while(!TRMT); TXREG=0x37; TXREG=0x30; while(!TRMT); TXREG=0x30; TXREG=0x00; while(!TRMT); TXREG=0x00; TXREG=0x00; while(!TRMT); TXREG=0x00; TXREG=0x0c; while(!TRMT); TXREG=0x32; TXREG=0x30; while(!TRMT); TXREG=0x31; TXREG=0x35; while(!TRMT); TXREG=0x30; TXREG=0x38; while(!TRMT); TXREG=0x30; TXREG=0x34; while(!TRMT); TXREG=0x30; TXREG=0x30; while(!TRMT); TXREG=0x30; TXREG=0x30; while(!TRMT); TXREG=0x74; TXREG=0x85; while(!TRMT); while(1) { asm("clrwdt"); } } void init() { TRISC=0x80; SPBRG=12; //波特率9600 BAUDCON=0x08; TXSTA=0x24; //使能串口发送 RCSTA=0x90; TXEN=1; SPEN=1; //TXIE=0; CREN=0; RCIF = 1; GIE = 1; } |
|
|
|
我用的PIC16F877A,配置字是__CONFIG(WDTDIS & BORDIS & LVPDIS); 基本就是这种格式,WDTEN是打开看门狗功能,WDTDIS是关闭,关闭了开门狗功能后,就不需要CLRWDT();清除看门狗了,所以while(1)里面的asm("clrwdt");不用写;而且串口一次发送一个字节,你上面都是每两个字节加一句while(!TRMT); 应该是一个TXREG=??后面就有一句while(!TRMT); 你这个单片机我没用过,不过应该差不多
|
|
|
|
wiefel 发表于 2015-9-22 21:53 我在发送数据之前加了个延迟 已经解决了 谢谢 |
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2076 浏览 1 评论
3484 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2329 浏览 2 评论
2754 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4011 浏览 5 评论
956浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6342浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 23:20 , Processed in 0.615855 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号