485通信代码该怎么写?

[复制链接]
4498|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的时序一样不
lwsn 发表于 2016-4-29 22:15 | 显示全部楼层

485也是用的DB9的接头是吗
51xlf 发表于 2016-4-29 22:39 | 显示全部楼层
485的协议看过了吗
51xlf 发表于 2016-4-29 22:41 | 显示全部楼层
看一下相关的通信协议,才能行的。
xxdcq 发表于 2016-4-30 12:14 | 显示全部楼层
用有自动流控的485模块就和用232完全一样,根本不需要去控制数据方向
lemonboard 发表于 2016-4-30 13:39 | 显示全部楼层
RS485 与 RS232 均使用的uart的数据协议
但是两者的物理层协议是不同的
bingg 发表于 2016-4-30 14:16 来自手机 | 显示全部楼层
就是串口,一样控制
木秀于小树林 发表于 2016-5-2 22:43 | 显示全部楼层
和串口一样的,只是多出了一个方向控制,控制是发送还是接收
 楼主| djz1992 发表于 2016-5-4 10:49 | 显示全部楼层
木秀于小树林 发表于 2016-5-2 22:43
和串口一样的,只是多出了一个方向控制,控制是发送还是接收

是的,还要把地址,功能码,数据,校验什么的排好序
 楼主| djz1992 发表于 2016-5-4 10:52 | 显示全部楼层
dirtwillfly 发表于 2016-4-29 15:55
如果用的是ttl转485电路,是一样的。
485就是多一个方向控制

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


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
359706521 发表于 2016-5-4 12:44 | 显示全部楼层
xyz549040622 发表于 2016-5-4 23:35 | 显示全部楼层
djz1992 发表于 2016-5-4 10:52
也就是一个引脚在发送的时候拉低拉高一下。

你这绝对是51中的写法。。。你试试加const,自动就放到rom中了。
 楼主| djz1992 发表于 2016-5-5 09:10 | 显示全部楼层
xyz549040622 发表于 2016-5-4 23:35
你这绝对是51中的写法。。。你试试加const,自动就放到rom中了。

额,unsigned char code table不是单片机通用的么。。。不过确实是51写法学来的。。
const是指不能通过该变量来改变它的值,也就是放到rom?
xyz549040622 发表于 2016-5-5 09:48 | 显示全部楼层
djz1992 发表于 2016-5-5 09:10
额,unsigned char code table不是单片机通用的么。。。不过确实是51写法学来的。。
const是指不能通过该 ...

code是c51中的办法,const是C语言通用的,你用const申明后看看编译空间的大小,就知道放在哪里了。
 楼主| djz1992 发表于 2016-5-5 10:04 | 显示全部楼层
xyz549040622 发表于 2016-5-5 09:48
code是c51中的办法,const是C语言通用的,你用const申明后看看编译空间的大小,就知道放在哪里了。 ...

好的
 楼主| djz1992 发表于 2016-5-5 11:00 | 显示全部楼层
xyz549040622 发表于 2016-5-5 09:48
code是c51中的办法,const是C语言通用的,你用const申明后看看编译空间的大小,就知道放在哪里了。 ...

封装好的函数,接口指针带了const,我在使用该函数的时候输入的是一个普通数组,会有warning说const uint与uint冲突,实际运行没影响,这样的情况该如何处理?
xyz549040622 发表于 2016-5-5 21:27 | 显示全部楼层
djz1992 发表于 2016-5-5 11:00
封装好的函数,接口指针带了const,我在使用该函数的时候输入的是一个普通数组,会有warning说const uint ...

按照接口的要求来,谁知道会出什么问题呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

115

主题

620

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部