打印

485通信代码该怎么写?

[复制链接]
3816|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
djz1992|  楼主 | 2016-4-29 14:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
参考了51单片机的485代码,但是TIVA的串口有串口接收和发送函数。不知道怎么用这两个函数写485的代码?

void UART1IntHandler(void)
{
        uint32_t ulStatus,i=0;
        ulStatus = ROM_UARTIntStatus(UART1_BASE, true);//获取中断状态
        ROM_UARTIntClear(UART1_BASE, ulStatus);//清除中断标志
        //直到串口FIFO中没有数据时才退出循环
        while(ROM_UARTCharsAvail(UART1_BASE))
        {
                Receive[i]=ROM_UARTCharGet(UART1_BASE);
                                i++;
        }
}

void  UARTSend( uint32_t address , const uint8_t *pucBuffer, uint8_t lenth)
{
        while(lenth--)
  {
                ROM_UARTCharPut(address, *pucBuffer++); //将要发送的字符写进UART
  }
}


相关帖子

沙发
dirtwillfly| | 2016-4-29 15:55 | 只看该作者
如果用的是ttl转485电路,是一样的。
485就是多一个方向控制

使用特权

评论回复
板凳
litianchenghao| | 2016-4-29 17:53 | 只看该作者
关注学习一下。

使用特权

评论回复
地板
wahahaheihei| | 2016-4-29 20:34 | 只看该作者
485跟232的时序一样不

使用特权

评论回复
5
lwsn| | 2016-4-29 22:15 | 只看该作者

485也是用的DB9的接头是吗

使用特权

评论回复
6
51xlf| | 2016-4-29 22:39 | 只看该作者
485的协议看过了吗

使用特权

评论回复
7
51xlf| | 2016-4-29 22:41 | 只看该作者
看一下相关的通信协议,才能行的。

使用特权

评论回复
8
xxdcq| | 2016-4-30 12:14 | 只看该作者
用有自动流控的485模块就和用232完全一样,根本不需要去控制数据方向

使用特权

评论回复
9
lemonboard| | 2016-4-30 13:39 | 只看该作者
RS485 与 RS232 均使用的uart的数据协议
但是两者的物理层协议是不同的

使用特权

评论回复
10
bingg| | 2016-4-30 14:16 | 只看该作者
就是串口,一样控制

使用特权

评论回复
11
木秀于小树林| | 2016-5-2 22:43 | 只看该作者
和串口一样的,只是多出了一个方向控制,控制是发送还是接收

使用特权

评论回复
12
djz1992|  楼主 | 2016-5-4 10:49 | 只看该作者
木秀于小树林 发表于 2016-5-2 22:43
和串口一样的,只是多出了一个方向控制,控制是发送还是接收

是的,还要把地址,功能码,数据,校验什么的排好序

使用特权

评论回复
13
djz1992|  楼主 | 2016-5-4 10:52 | 只看该作者
dirtwillfly 发表于 2016-4-29 15:55
如果用的是ttl转485电路,是一样的。
485就是多一个方向控制

也就是一个引脚在发送的时候拉低拉高一下。


为什么CCS中使用unsigned char code table【】={*****};语句的时候,系统貌似认不出来?还提示code变量没有使用?

使用特权

评论回复
14
359706521| | 2016-5-4 12:44 | 只看该作者
求贴

使用特权

评论回复
15
xyz549040622| | 2016-5-4 23:35 | 只看该作者
djz1992 发表于 2016-5-4 10:52
也就是一个引脚在发送的时候拉低拉高一下。

你这绝对是51中的写法。。。你试试加const,自动就放到rom中了。

使用特权

评论回复
16
djz1992|  楼主 | 2016-5-5 09:10 | 只看该作者
xyz549040622 发表于 2016-5-4 23:35
你这绝对是51中的写法。。。你试试加const,自动就放到rom中了。

额,unsigned char code table不是单片机通用的么。。。不过确实是51写法学来的。。
const是指不能通过该变量来改变它的值,也就是放到rom?

使用特权

评论回复
17
xyz549040622| | 2016-5-5 09:48 | 只看该作者
djz1992 发表于 2016-5-5 09:10
额,unsigned char code table不是单片机通用的么。。。不过确实是51写法学来的。。
const是指不能通过该 ...

code是c51中的办法,const是C语言通用的,你用const申明后看看编译空间的大小,就知道放在哪里了。

使用特权

评论回复
18
djz1992|  楼主 | 2016-5-5 10:04 | 只看该作者
xyz549040622 发表于 2016-5-5 09:48
code是c51中的办法,const是C语言通用的,你用const申明后看看编译空间的大小,就知道放在哪里了。 ...

好的

使用特权

评论回复
19
djz1992|  楼主 | 2016-5-5 11:00 | 只看该作者
xyz549040622 发表于 2016-5-5 09:48
code是c51中的办法,const是C语言通用的,你用const申明后看看编译空间的大小,就知道放在哪里了。 ...

封装好的函数,接口指针带了const,我在使用该函数的时候输入的是一个普通数组,会有warning说const uint与uint冲突,实际运行没影响,这样的情况该如何处理?

使用特权

评论回复
20
xyz549040622| | 2016-5-5 21:27 | 只看该作者
djz1992 发表于 2016-5-5 11:00
封装好的函数,接口指针带了const,我在使用该函数的时候输入的是一个普通数组,会有warning说const uint ...

按照接口的要求来,谁知道会出什么问题呢。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:人生苦短,冬日苦长,正是青葱,却无骄阳

115

主题

620

帖子

5

粉丝