📄 nrf9e5 trans.txt
字号:
#include "pic18.h" /* PIC18系列的头文件 */
unsigned char receive232[8]; /* 接收数据数组 */
unsigned char send232[8]; /* 发送数据数组 */
unsigned char receive_count=0; /* 接收数据个数计数 */
unsigned char send_count=0; /* 发送数据个数计数 */
unsigned char *pointer; /* 发送数据指针 */
unsigned char i; /* 程序中用到的循环变量 */
unsigned char SciReceiveFlag; /* =1,接收到8个数据 */
unsigned char Send_Mode=0; /* 不为0,中断方式发送;=0,非中断方式发送 */<P>如果使用NRF9E5进行数据传输,那我们来看看程序是如何编写的:<O:P></O:P></P>
<P>void main(void) //成都无线龙:利用NRF9E5进行数据传输的主函数<O:P></O:P></P>
<P>{ Init(); //芯片初始化<O:P></O:P></P>
<P> LEDR=0; LEDG=0; //LEDR红灯灭 LEDG绿灯灭<O:P></O:P></P>
<P> for (int aaa=0;aaa<100;aaa++)<O:P></O:P></P>
<P> {Delay (100);} //延时100us<O:P></O:P></P>
<P> LEDR=1; LEDG=1; //LEDR红灯亮 LEDG绿灯亮<O:P></O:P></P>
<P> while(1){LEDR=1; LEDG=1; <O:P></O:P></P>
<P> if (KEYR==0) <O:P></O:P></P>
<P> {LEDR=1; LEDG=0;<O:P></O:P></P>
<P> Data=0x10;<O:P></O:P></P>
<P> TransmitFile(); //传输数据<O:P></O:P></P>
<P> }<O:P></O:P></P>
<P> if (KEYT==0)<O:P></O:P></P>
<P> { Data=0x01;<O:P></O:P></P>
<P> LEDR=0; LEDG=1;<O:P></O:P></P>
<P> TransmitFile();<O:P></O:P></P>
<P> }<O:P></O:P></P>
<P> }<O:P></O:P></P>
<P>}<O:P></O:P></P>
{
if(1==SciReceiveFlag) /* 是否接收到8个通信数据 */
{
SciReceiveFlag=0; /* 清接收到8个通信数据标志 */
if(0!=Send_Mode) /* Send_Mode不为0,中断方式发送 */
{
send_count=0; /* 发送数据计数清0 */
pointer=&send232[0]; /* 发送指针指向发送数据数组首地址 */
TXREG=*pointer++; /* 发送第一个数据后,将发送指针加1 */
TXEN=1; /* 使能发送 */
}
else /* Send_Mode =0,非中断方式发送数据 */
{
pointer=&send232[0]; /* 发送指针指向发送数据数组首地址 */
for(i=0;i<8;i++)
{
TXREG=*pointer++; /* 发送数据后,将发送指针加1 */
while(1) /* 等待发送完成 */
{
if(TXIF==1) break; /* 等待发送完成 */
}void sciinitial() /* 串行通讯初始化子程序 */
{
TXSTA=0x04; /* 选择异步高速方式传输8位数据 */
RCSTA=0x80; /* 允许串行口工作使能 */
TRISC=TRISC|0X80; /* :将RC7(RX)设置为输入方式 */
TRISC=TRISC&0Xbf; /* RC6(TX)设置为输出 */
SPBRG=25; /* 4M晶振且波特率为9600时,SPBRG设置值为25 */
PIR1=0x00; /* 清中断标志 */
PIE1=PIE1|0x20; /* 允许串行通讯接口接收中断使能 */
RCIP=0; /* 设置SCI接收中断为低优先级中断 */
CREN=1; /* 允许串口连续接收数据 */
if(0==Send_Mode) TXEN=1; /* Send_Mode=0,非中断方式发送,串口发送数据使能 */
else /* Send_Mode=1,中断方式发送 */
{
PIE1=PIE1|0x10; /* 允许中断发送 */
TXIP=0; /* 发送低优先级中断 */
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -