完善资料让更多小伙伴认识你,还能领取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芯片一直处于发送使能状态,肯定不能接收的 |
|
|
|
|
只有小组成员才能发言,加入小组>>
576 浏览 0 评论
1636 浏览 0 评论
2070 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1527 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1365 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1779浏览 29评论
2806浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1737浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1651浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1664浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-8 11:02 , Processed in 0.937534 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4650