完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
用示波器测试了一下,发现串口到RS485之前有波形,RS485之后也有波形。。。就是CC2530收不到信号。。发现进不去那个接收中断。。。。求解。。。
|
|
相关推荐
10个回答
|
|
Hi guang,
你在IAR的属性设置里面有没有设置HAL_UART= TRUE(Defined symbols 选项). 如果没有的话,UART模块就不会使能,从而用不了UART模块。 谢谢 ken BR, KEN |
|
|
|
lining870815844 发表于 2018-6-1 10:27 用了还是不行。就是不用协议栈也不行。。。难道是我的电路图有问题???帮我看看rs485有问题吗? |
|
|
|
lining870815844 发表于 2018-6-1 10:27 设置了还是不行。。。。是不是我的rs485电路有问题。。。你帮我看一下吧 |
|
|
|
抛开485电路,直接串口TX接CC2530的P0.2试试呢?接收中断是否开启?应该加上IEN0 |= (1<<2);
|
|
|
|
我也遇到跟楼主类似的问题了。原本只是用了USB转TTL的转换器接收发送数据都没问题。后来硬件加了TTL转485的接口,用P0.1作为485的使能控制,P0.4和P1.0作为指示灯,修改了Hal文件的设置后,USART只能接收不能发送;奇怪的是如果把LED的宏定义也设置成P0.1,就变成只能发送不能接收了。
请高手指点问题出在哪里?485原理图如下,很简单的接法 |
|
|
|
60user69 发表于 2018-6-1 11:12 问题解决了,原因可能是DMA发送有一个响应时间,我调用HalUARTWrite函数之前将DC_485置高,调用完立刻置低,这时候DMA还没有发送完成,从示波器上可以看出发送的波形时间比DC_485的高电平时间长。后来尝试在拉低DC_485之前加延时,想尽量等DMA操作完成,还是不成功。 最终的解决方法是在DMA的发送完成中断函数的最后才将DC_485拉低,485就可以正常发送和接收了 |
|
|
|
60user69 发表于 2018-6-1 11:29 能不能说的再详细一些 我还是没有解决呢 |
|
|
|
MT_UartInit(); //串口初始化 MT_UartRegisterTaskID(task_id); //登记任务号 IEN0 |= (1<<2); //使能USART0 RX 然后就可以进 HAL_ISR_FUNCTION( halUSART0Isr, URX0_VECTOR )了 你的485使能控制正常吗?在空闲状态时是低电平吗 |
|
|
|
60user69 发表于 2018-6-1 11:52 我用协议栈不行,不用协议栈自己编程序还是不行。。。一上电就是高电平啊。。。 |
|
|
|
发送之前将485控制引脚设为高电平,发送完之后再设成低电平啊,要不485芯片一直处于发送使能状态,肯定不能接收的 |
|
|
|
只有小组成员才能发言,加入小组>>
354 浏览 1 评论
547 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
793 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
664 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1141 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
88浏览 29评论
335浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
262浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
215浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
69浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 12:17 , Processed in 1.420481 second(s), Total 66, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号