CC2530调试1——GPIO 定时器 与 串口部分

  1. CC2530基础了解
  2. QFN40封装,其中电源管脚8个,地脚4个,复位1个,晶振2个,射频2个,DCUOPL和RBIAS共2个,累计8+4+1+2+2+2 = 19个。P0共8个,P1共8个,P2共5个 = 21个,其中P2_1,P2_2共2个脚调试用,P2_3,P2_4共2个管脚做实时时钟用,所以可用IO口是17个。(P0_2 P0_3有串口功能)

  3. 一.GPIO口
  4. 管脚默认是上拉输入。管脚中断略过。原因是定时器中断足够用。
  5. (1)通用IO口寄存器
  6. PxSEL:端口功能选择: 0通用I/O ;1外设功能。
  7. PxDIR:I/O方向: 0 输入 ; 1输出
  8. PxINP:输入模式: 是上拉、下拉还是三态。配置比较复杂。
  9. Px:   数据端口,控制端口输出或获取端口输入。
  10. (2)通用IO口数据修改
  11. 清0而不影响其它位  &=  ~
  12. 置1而不影响其它位  |=  
  13. (3)初始化流程
  14. P0按(1)中的1~3步设置,同理P1 P2。 共分3组,不要混了。

  15. 二.定时器
  16. 了解定时器1就足够用,知道有5个定时器就可以。后续其它的再说。
  17. 主频暂不讨论,目测与晶振和配置有关,调试的时候再看。
  18. 定时器1是16位的,所以要关注分频,防止超程。
  19. 直接上案例吧:
  20. 初始化:
  21. T1CC0L = 0xd4;        //设置最大计数值的低位
  22. T1CC0H = 0x30;        //设置最大计数值的高位
  23. T1CCTL0 |= 0x04;      //开启通道0的输出比较模式
  24. T1IE = 1;              //使能定时器1中断
  25. T1OVFIM = 1;           //使能定时器1溢出中断
  26. EA = 1;                 //使能总中断
  27. T1CTL = 0x0e;         //分频系数是128
  28. 使用:
  29. #pragma vector = T1_VECTOR
  30. __interrupt void Timer1_Sevice()
  31. {
  32.   T1STAT &= ~0x01;      //清除定时器1通道0中断标志
  33.   //自己需要写的应用函数
  34. }

  35. 三.串口
  36. 看资料,串口整得比较复杂,有串口0和串口1。我这边只考虑用起来,所以实际只管串口0,也就是P0_2 P0_3管脚。
  37. 直接上应用代码:
  38. 初始化:
  39. PERCFG = 0x00;    //串口0的引脚映射到位置1,即P0_2和P0_3
  40. P0SEL = 0x0C;     //将P0_2和P0_3端口设置成外设功能
  41. U0BAUD = 59;      //16MHz的系统时钟产生9600BPS的波特率
  42. U0GCR = 9;
  43. U0UCR |= 0x80;    //禁止流控,8位数据,清除缓冲器
  44. U0CSR |= 0xC0;    //选择UART模式,使能接收器
  45. UTX0IF = 0;       //清除TX发送中断标志
  46. URX0IF = 0;       //清除RX接收中断标志
  47. URX0IE = 1;       //使能URAT0的接收中断
  48. EA = 1;           //使能总中断

  49. #pragma vector = URX0_VECTOR
  50. __interrupt void UR0_RecvInt()
  51. {
  52.   URX0IF = 0;           //清除RX接收中断标志
  53.   dataRecv =  U0DBUF;   //将数据从接收缓冲区读出
  54.   Flag = 1;             //设置接收指令标志
  55. }
  56. UR0SendByte(unsigned char dat)
  57. {
  58.   U0DBUF = dat;         //将要发送的1字节数据写入U0DBUF
  59.   while(!UTX0IF);       //等待TX中断标志,即数据发送完成
  60.   UTX0IF = 0;           //清除TX中断标志,准备下一次发送}
  61. }
  62. 拾人牙慧,我主要是能用起来就行,并不是为了研究而研究。

  63. 以上我从其它帖子上总结出来的,具体有机会调试的时候看。
  64. 接下来的才是难点,Zigbee组网配置。粗略看了一下,还上了一个操作系统,比较繁琐。



复制代码


本主题由 bing680610 于 2019-3-25 10:34 添加图标 优秀




评分


参与人数 1CKB +5 UB +30 收起 理由 bing680610 + 5 + 30 分享资料获得评分奖励!

查看全部评分

文件到原文下载,原文出自:https://bbs.usoftchina.com/thread-210194-1-1.html

推荐阅读更多精彩内容