- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CC2430单片机串口测试实验(UART)
无线龙04协议栈 CC2430单片机串口测试实验(UART)
程序:
1、《main.c》
#define ENABLE_ALL_INTERRUPT() (IEN0 |= 0x80)#define DISABLE_ALL_INTERRUPT() (IEN0 = ~0x80)
#includeioCC2430.h
#define uchar unsigned char#define uint unsigned int#define BYTE unsigned char
extern void UARTxISRopen(void); //开串口接收中断服务函数extern void SET_UART0_ISR(void); //串口中断接收设置函数extern void initUART(void); //初始化函数
main( void ){ uchar temp = 0; SLEEP = ~0x04; //reset 2:Both oscillators powered up while(!(SLEEP 0x40)); //XOSC is powered up and stable 等待起振 CLKCON = ~0x47; //reset 6:Main clock oscillator select: 32 MHz crystal oscillator SLEEP |= 0x04; //set 2:Oscillator not selected by OSC bit powered down //先让两个振荡器都起振;等待晶体振荡器起振并稳定; //通过CLKCON的OSC位把主时钟选择32M晶体振荡器; //再让没有被CLKCON的OSC位选择的振荡器停止起振(关RC振荡器) initUART(); //初始化 UARTxISRopen(); //开串口接收中断函数 ENABLE_ALL_INTERRUPT(); //开全局中断 while(1);}
//----------------------------------------------------------------------------
2、《uart.c》
#includeioCC2430.hunsigned uarttemp;
#define ENABLE_ALL_INTERRUPT() (IEN0 |= 0x80) //开全局中断#define DISABLE_ALL_INTERRUPT() (IEN0 = ~0x80)//关全局中断
#define IO_PER_LOC_UART0_AT_PORT0_PIN2345() do { PERCFG = (PERCFG~0x01)|0x00; } while (0) //reste 0:USART0 I/O location: Alternative 1 location //选择USART0为通道1:P0.2345#define uchar unsigned char
#define CRYSTAL 0x00#define RC 0x01
#define HIGH_STOP 0x02 //停止位为高电平#define LOW_STOP 0x00 //停止位为低电平
#define CLKSPD (CLKCON 0x07)//32KHZ and 32MHZ crystal oscilliator;32MHZ ticks
#define TRANSFER_MSB_FIRST 0x80 //最高位先发送#define TRANSFER_MSB_LAST 0x00 //最高位后发送//LSB(Least Significant Bit),意为最低有效位//MSB(Most Significant Bit),意为最高有效位
#define UART_ENABLE_RECEIVE 0x40 //UART接收使能
#define UART_SETUP(uart,
文档评论(0)