完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
首先我简单测试单字符 是可以发送的且发送正确:
while(!TXSTA5bits.TRMT); TXREG5 =0X0D; 然后我些了一个字符串的测试,发现都是发送0 unsigned char TEST[6]={0X54,0x4F,0x53,0x44,0X0D}; void putrs5USART( char data*) { do { // Transmit a byte while(!TXSTA5bits.TRMT); TXREG5 =*data; } while( *data++ ); } putrs5USART(TEST); 为了查明原因 我更加简化了 unsigned char TEST[6]={0X54,0x4F,0x53,0x44,0X0D}; while(!TXSTA5bits.TRMT); TXREG5 =0X54; while(!TXSTA5bits.TRMT); TXREG5 =TEST[1]; while(!TXSTA5bits.TRMT); TXREG5 =0x53; while(!TXSTA5bits.TRMT); TXREG5 =0x44; while(!TXSTA5bits.TRMT); TXREG5 =0X0D; delay_100ms(20); 然后发现带 TXREG5 =TEST[1]; 这一部分还是0,其他部分正确 然后我尝试了这样,还是错误 发送的是0。 unsigned char TEST[6]={0X54,0x4F,0x53,0x44,0X0D}; unsigned char i; while(!TXSTA5bits.TRMT); i = TEST[1]; TXREG5 =i; 这边还尝试了 unsigned int char 以及#include 但是问题依旧,发送的是0, 我感觉问题可能是TXREG 寄存器赋值的问题. 我很怀疑是不是硬件有什么bug?希望得到大家的帮助!谢谢! |
|
相关推荐
3个回答
|
|
|
会不会是你代码写得有问题,,,既然是用do while 为啥后面还要跟上一个while???
|
|
|
|
|
|
你好 ,代码应该是没用问题,,,我DO WHILE 里面的WHILE是判断标志位 do { while(!TXSTA5bits.TRMT); TXREG5 =*data; } while( *data++ ); 其实这个代码是PIC官方推荐的字符串代码 |
|
|
|
|
|
结贴了。。。。是K40系列的整个IC错误。。。。。。。。。。 PIC已经出了文档 参考:
PIC18F65/66K40 Family Silicon Errata and Data Sheet Clarification |
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2365 浏览 1 评论
4219 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2601 浏览 2 评论
3100 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4550 浏览 5 评论
有套STM32与西门子200程序需要代写,有兴趣的工程师与有联系!
2470浏览 1评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6783浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 08:21 , Processed in 0.784311 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
7950