如有错误还需自己去查看资料。

如果可以改进有错可以评论一下。

#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串口中断接收字符并且判断相关推荐

  1. STM32串口中断接收实验

    STM32串口中断接收实验的详细说明 准备 代码实现 总结 准备 材料:STM32F407ZGT6最小系统板,串口1通过跳线帽连接到了CH340上. 需求:从电脑向板子的串口1发送一个字符串(以回车和 ...

  2. STM32串口中断接收HAL库超详解析

    之前一直用的固件库跑c8t6和zet6,现在有幸接触到stm32H743用到HAL库,学习嘛都是踩坑,csdn,然后...理解底层库的代码 本人有幸遇到了H7的串口中断接收只进去一次的Bug,于是马上 ...

  3. STM32 HAL库 串口DMA(收发)和STM32串口中断接收(接收时间管理机制)+ESP8266 wifi模组通信问题

    一.HAL库 串口 DMA+ESP8266模组通信问题 用STM32 HAL库串口的DMA发送和空闲中断接收处理数据,单片机发送AT指令给ESP8266 wifi模组问题:单片机连续几次给wifi模组 ...

  4. stc 串口收发 c语言,STC12C5A60S2 串口中断接收程序

    原标题:STC12C5A60S2 串口中断接收程序 #define UART0_BUF_LEN 32 int UART1_Recv_count; //接收计数 bit UART1_Overflow_F ...

  5. STM32使用串口中断接收HWT101的数据

    因研究生阶段项目需求,需要采用HWT101给单片机提供角度信息. HWT101是维特智能公司下的一款角度传感器,它可以通过计算角速度测量绕Z轴旋转的水平方向的偏航角,具有高精度.几乎无漂移.不受磁场干 ...

  6. STM32G070RBT6基于STM32CubeMX创建串口中断接收数据

    STM32G070RBT6基于STM32CubeMX创建串口中断接收数据

  7. STM32串口的使用(原理、结构体、库函数、串口发送字符(串)、重定向printf串口发送、串口中断接收控制灯)

    参考:串口的结构体 重定向printf串口发送stm32等博文 作者:点灯小哥 发布时间: 2021-03-06 21:46:33 网址:https://blog.csdn.net/weixin_46 ...

  8. STM32串口中断接收标记USART_RX_STA 学习

    对于串口中断函数USART_RX_STA接收标记位解析,费话不多说了,直接上代码. #define USART1_REC_LEN 200 u8 USART1_RX_BUF[USART1_REC_LEN ...

  9. STM32串口中断接收方式详细比较

    本例程通过PC机的串口调试助手将数据发送至STM32,STM32通过SP3232芯片采用中断接收方式完成,然后接收数据后将所接收的数据又发送至PC机. 实例一: void USART1_IRQHand ...

  10. stc12串口收发计算机,STC12C5A60S2 串口中断接收程序

    printf("%c",UART1_Recv_BUF[i]); Appcall(UART1_Recv_BUF,UART1_Recv_count); printf("rn& ...

最新文章

  1. Java中getResourceAsStream的用法
  2. 如何在不停止程序的情况下打印完整的回溯?
  3. Hark的数据结构与算法练习之基数排序
  4. VTK:Qt之BarChartQt
  5. [开源]基于姿态估计的运动计数APP开发(一)
  6. 可以搜python编程答案的软件_python实现百万答题自动百度搜索答案
  7. 记一次lvs-tunnel模式的故障分析(7)
  8. Pycharm 简单一步设置成官方中文版
  9. 分布式事务CAP理论
  10. python 双重差分模型_计量经济学导论13:虚拟变量与双重差分
  11. Link warning:LNK4199 解决
  12. NLP太卷,我去研究蛋白质了~
  13. 音视频:AVAudioPlayer:中断处理
  14. 与表达式p =0等价的c语言表达式是,2015年3月全国计算机二级C语言选择第1套
  15. 线上事故的善后——事故通告
  16. 社保、医保、新农合、城镇保险有什么区别?哪个划算?
  17. 记录一次git解决冲突的过程
  18. 我作为“硬件工程师”,为什么怕做硬件?
  19. 第十届CDA数据分析师认证考试圆满结束!
  20. php unoconv,使用 unoconv 将 PPT 转换成 PDF

热门文章

  1. pytest框架之fixture测试夹具详解
  2. 让canvas绘图更清晰
  3. 《系统集成项目管理》第九章 项目成本管理
  4. wpsa3版面怎么变成a4、排版不变_worda3变a4排版打印 word如何将a3排版成a4
  5. wc2018冲刺期总结
  6. 怎么在CAD图纸中标注文字
  7. 爱奇艺影业,你明天还为传统电影业打工吗?
  8. 各地大厂名单(一二线城市知名公司)
  9. IOS开发之——硬件开发-传感器概述(01)
  10. PX PT 磅 EM 以及PS中字间距VA单位的解释