#include <ioCC2530.h> #include <string.h> #define uint unsigned int #define uchar unsigned char // 定義 LED 的端口 #define LED1 P1_0 #define LED2 P1_1 // 函數聲明 void Delay_ms(uint); void initUART(void); void UartSend_String(char *Data); //字符串發送函數 char Txdata[14]; // 存放」HELLO WEBEE 「字符串 /**************************************************************** 延時函數 ****************************************************************/ void Delay_ms(uint n) { uint i,j; for(i=0;i<n;i++) { for(j=0;j<1774;j++); } } //led 燈初始化 void IO_Init() { P1DIR = 0x01; //P1_0IO 方向輸出 LED1 = 1; //關 LED } /**************************************************************** 串口初始化函數 ****************************************************************/ void InitUART(void) { PERCFG = 0x00; //外設控制寄存器 位置 1 P0 口 P0SEL = 0x0c; //P0_2,P0_3 用做串口(外部設備功能) P2DIR &= ~0XC0; //D7D6 用於端口P0的優先級選擇 T0 D7,D6爲00,表示UART0優先級最高 U0CSR |= 0x80; // 設置爲 UART 方式 U0GCR |= 11; U0BAUD |= 216; // 波特率設爲 115200,波特率由U0GCR、U0BAUD共同設置 UTX0IF = 0; //UART0 TX 中斷標誌初始置位 0 } /**************************************************************** 串口發送字符串函數 ****************************************************************/ void UartSend_String(char *Data) { //int j; while(*Data != '\0') { U0DBUF = *Data++; while(UTX0IF == 0); UTX0IF = 0; } } /**************************************************************** 主函數 ****************************************************************/ void main(void) { CLKCONCMD &= ~0x40; // 設置系統時鐘源爲 32MHZ 晶振 while(CLKCONSTA & 0x40); // 等待晶振穩定爲 32M CLKCONCMD &= ~0x47; // 設置系統主時鐘頻率爲 32MHZ IO_Init(); InitUART(); strcpy(Txdata,"HELLO WEBEE\n"); // 將發送內容 copy 到 到 Txdata; while(1) { //UartSend_String(Txdata,sizeof("HELLO WEBEE\n")); // 串口發送數據 UartSend_String(Txdata); Delay_ms(500); // 延時,0.5秒改變一下狀態(一秒的頻率閃爍) LED1=!LED1; // 標誌發送狀態 } }