



串口模塊:
頭文件:
#ifndef __UART_H__#define __UART_H__extern void InitUart(); //初始化串口extern void Uart_Send_String(unsigned char *Data,int len);#endif實現文件:
#include <ioCC2530.h>#define uchar unsigned char#define uint unsigned intvoid InitUart(); //初始化串口void Uart_Send_String(unsigned char *Data,int len);/**************************************************************** 串口初始化函數 ***********************************************************/void InitUart(){ CLKCONCMD &= ~0x40; // 設置系統時鐘源為 32MHZ晶振 while(CLKCONSTA & 0x40); // 等待晶振穩定 CLKCONCMD &= ~0x47; // 設置系統主時鐘頻率為 32MHZ PERCFG&=~0x01; //有2個備用位置,0使用備用位置1;1使用備用位置2 P0SEL |= 0x0C; //P0_2 RXD P0_3 TXD 外設功能 0000 1100 U0CSR |= 0xC0; //串口接收使能 1100 0000 工作UART模式+允許接受 U0UCR |= 0x00; //無奇偶校驗,1位停止位 U0GCR |= 11; //U0GCR與U0BAUD配合 U0BAUD |= 216; // 波特率設為115200 IEN0 |= 0X04; //開串口接收中斷 'URX0IE = 1',也可以寫成 URX0IE=1; EA=1; }void Uart0_SendCh(char ch){ U0DBUF = ch; while(UTX0IF == 0); UTX0IF = 0;}/**************************************************************** 串口發送字符串函數 ****************************************************************/ void Uart_Send_String(unsigned char *Data,int len) { { int j; for(j=0;j<len;j++) { Uart0_SendCh(*Data++); } }}
新聞熱點
疑難解答