CC2530串口中断接收字符并且判断
如有错误还需自己去查看资料。
如果可以改进有错可以评论一下。
#include <ioCC2530.h>
#define D3 P1_0
#define D4 P1_1
#define D5 P1_3
#define D6 P1_4
#define SW1 P1_2
char get_char[10];
char c=0;
int i=0,m=0;
void usb(char c){
U0DBUF = c;
while(UTX0IF ==0 );
UTX0IF = 0;
}
void uss(char * c){ //串口发送,如要发送【uss("你好!");】
while(*c!='\0'){
usb(*c++);
}
}
void init(){ //初始化要用到的端口
P1SEL &=~ 0x1f; //设置I/O
P1DIR |= 0X1B; //LED灯:输出
P1DIR &=~ 0X04; //SW1按钮:输入
P1INP &=~ 0X04; //设置按钮三态
P2INP &=~ 0X40;
P1 &=~ 0X1B; //所以LED灯灭:置0
}
void init_32mhz(){ //设置32mhz。用32mhz设置波特率比较准确吧,反正我用16mhz设置发送和 接收都是乱码。
CLKCONCMD &=~ 0X40;
while(CLKCONCMD & 0X40);
CLKCONCMD &=~ 0X47;
}
void init_com(){ //设置初始化串口中断和波特率
PERCFG &=~ 0X01;
P0SEL |= 0X0C;
U0BAUD =59; //这两是波特率
U0GCR = 8;
U0UCR |= 0x80;
U0CSR |= 0XC0;
URX0IE = 1;
URX0IF = 0;
UTX0IF = 0;
EA = 1;
}
#pragma vector = URX0_VECTOR
__interrupt void get_Com(){
URX0IF=0;
c=U0DBUF;
if(c!='\0')
get_char[i++]=c; //每存进一个字符i加一
if(get_char[0]=='o'&&get_char[1]=='n'&&get_char[2]=='l'&&get_char[3]=='e'&&get_char[4]=='d'){
D3=1;
}
else if(get_char[0]=='b'&&get_char[1]=='b'){ //这些条件看你们自己设置了
D3=0;
}
}
void init_T1(){
T1CCTL0 |= 0X04;
T1CC0L = 0XD4;
T1CC0H = 0X30;
T1CTL = 0X0E;
T1IE = 1;
EA = 1;
}
#pragma vector = T1_VECTOR
__interrupt void T1_100MS(){ //T1定时器100ms的,用两清空数组
T1STAT &=~ 0X20;
m++;
if(m==15){ //因为串口接收需要时间,接收越多时间约久,微调m就好
int x;
for(x=0;x<10;x++){ //看数组有多少位
get_char[x]=' ';
uss(get_char);
}
i=0;
m=0;
}
}
void main(void)
{
init_32mhz();
init();
init_com();
init_T1();
while(1)
{
}
}
CC2530串口中断接收字符并且判断相关推荐
- STM32串口中断接收实验
STM32串口中断接收实验的详细说明 准备 代码实现 总结 准备 材料:STM32F407ZGT6最小系统板,串口1通过跳线帽连接到了CH340上. 需求:从电脑向板子的串口1发送一个字符串(以回车和 ...
- STM32串口中断接收HAL库超详解析
之前一直用的固件库跑c8t6和zet6,现在有幸接触到stm32H743用到HAL库,学习嘛都是踩坑,csdn,然后...理解底层库的代码 本人有幸遇到了H7的串口中断接收只进去一次的Bug,于是马上 ...
- STM32 HAL库 串口DMA(收发)和STM32串口中断接收(接收时间管理机制)+ESP8266 wifi模组通信问题
一.HAL库 串口 DMA+ESP8266模组通信问题 用STM32 HAL库串口的DMA发送和空闲中断接收处理数据,单片机发送AT指令给ESP8266 wifi模组问题:单片机连续几次给wifi模组 ...
- stc 串口收发 c语言,STC12C5A60S2 串口中断接收程序
原标题:STC12C5A60S2 串口中断接收程序 #define UART0_BUF_LEN 32 int UART1_Recv_count; //接收计数 bit UART1_Overflow_F ...
- STM32使用串口中断接收HWT101的数据
因研究生阶段项目需求,需要采用HWT101给单片机提供角度信息. HWT101是维特智能公司下的一款角度传感器,它可以通过计算角速度测量绕Z轴旋转的水平方向的偏航角,具有高精度.几乎无漂移.不受磁场干 ...
- STM32G070RBT6基于STM32CubeMX创建串口中断接收数据
STM32G070RBT6基于STM32CubeMX创建串口中断接收数据
- STM32串口的使用(原理、结构体、库函数、串口发送字符(串)、重定向printf串口发送、串口中断接收控制灯)
参考:串口的结构体 重定向printf串口发送stm32等博文 作者:点灯小哥 发布时间: 2021-03-06 21:46:33 网址:https://blog.csdn.net/weixin_46 ...
- STM32串口中断接收标记USART_RX_STA 学习
对于串口中断函数USART_RX_STA接收标记位解析,费话不多说了,直接上代码. #define USART1_REC_LEN 200 u8 USART1_RX_BUF[USART1_REC_LEN ...
- STM32串口中断接收方式详细比较
本例程通过PC机的串口调试助手将数据发送至STM32,STM32通过SP3232芯片采用中断接收方式完成,然后接收数据后将所接收的数据又发送至PC机. 实例一: void USART1_IRQHand ...
- stc12串口收发计算机,STC12C5A60S2 串口中断接收程序
printf("%c",UART1_Recv_BUF[i]); Appcall(UART1_Recv_BUF,UART1_Recv_count); printf("rn& ...
最新文章
- Java中getResourceAsStream的用法
- 如何在不停止程序的情况下打印完整的回溯?
- Hark的数据结构与算法练习之基数排序
- VTK:Qt之BarChartQt
- [开源]基于姿态估计的运动计数APP开发(一)
- 可以搜python编程答案的软件_python实现百万答题自动百度搜索答案
- 记一次lvs-tunnel模式的故障分析(7)
- Pycharm 简单一步设置成官方中文版
- 分布式事务CAP理论
- python 双重差分模型_计量经济学导论13:虚拟变量与双重差分
- Link warning:LNK4199 解决
- NLP太卷,我去研究蛋白质了~
- 音视频:AVAudioPlayer:中断处理
- 与表达式p =0等价的c语言表达式是,2015年3月全国计算机二级C语言选择第1套
- 线上事故的善后——事故通告
- 社保、医保、新农合、城镇保险有什么区别?哪个划算?
- 记录一次git解决冲突的过程
- 我作为“硬件工程师”,为什么怕做硬件?
- 第十届CDA数据分析师认证考试圆满结束!
- php unoconv,使用 unoconv 将 PPT 转换成 PDF