?? main.c
字號:
#include <hidef.h> /* common defines and macros */
#include <mc9s12dt128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dt128b"
#define TXE PORTA_BIT0
#define PWR PORTA_BIT1
#define CS PORTA_BIT2
#define SCIRxE SCI0CR2_RE //SCI 接收控制位
#define SCITxE SCI0CR2_TE //SCI 發(fā)送控制位
void iniVal(void);
void delay(void);
void delay_long(void);
void ini_SCI(void);
void SCI_TX(byte *data,
word num);
byte g_data[9];
void iniVal(void)
{
DDRA = 0xFF;
PORTA = 0x00;
DDRS = 0xFF;
PTS = 0x00;
}
void delay(void)
{
word i;
for (i=0; i<20000; i++);
}
void delay_long(void)
{
word a,b;
for (a=0; a<60000; a++)
for (b=0; b<10; b++);
}
void ini_SCI(void)
{
SCI0BDH = 0x00;
SCI0BDL = 0x34;
//19200 -0x1A;
//9600 - 0x34;
//4800 - 0x68;
//2400 - 0xD0
//1200 - 0x01A1
SCI0CR1 = 0x00; //normal模式
SCIRxE = 1; //接收不使能
SCITxE = 0; //發(fā)送使能
}
/*
** ###################################################################
**
** SCI串口發(fā)送程序(發(fā)送數(shù)據(jù),發(fā)送長度)
**
** ###################################################################
*/
void SCI_TX(byte *data,
word num)
{
word i;
for(i=0; i<num; i++){
while(0 == SCI0SR1_TDRE); //等待發(fā)送緩沖區(qū)空
SCI0DRL = *(data+i); //向發(fā)送緩沖區(qū)寫入待發(fā)送數(shù)據(jù)
}
while(0 == SCI0SR1_TC); //等待發(fā)送結(jié)束
}
/*
** ###################################################################
**
** SCI串口發(fā)送程序(一個字節(jié))
**
** ###################################################################
*/
void SCI_TX_Byte(byte data)
{
while(0 == SCI0SR1_TDRE);
SCI0DRL = data;
while(0 == SCI0SR1_TC);
}
/*
** ###################################################################
**
** SCI串口接收程序
**
** ###################################################################
*/
void SCI_RX(byte *data,word num)
{
word i;
for(i=0;i<num;i++){
while(SCI0SR1_RDRF==0);
*(data+i)=SCI0DRL;
}
}
void ini_nRF401(void)
{
TXE = 0; // 上電前為接收狀態(tài)
PWR = 1; // 上電
delay(); // delay > 3ms
CS = 0; // 載波頻率為433MHZ
delay_long();// delay > 1ms 即可
}
void main(void) {
/* put your own code here */
iniVal();
ini_SCI();
ini_nRF401();
PTS = 0xFF;
g_data[0] = 0x55;
g_data[1] = 0x55;
g_data[2] = 0xAA;
g_data[3] = 0xAA;
g_data[4] = 4;
g_data[5] = 5;
g_data[6] = 6;
g_data[7] = 7;
g_data[8] = 8;
for(;;) {
while(0 == SCI0SR1_RDRF);
SCI_RX(g_data,9);
PTS = ~PTS;
} /* wait forever */
/* please make sure that you never leave this function */
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -