- 博客(27)
- 收藏
- 关注
原创 十六、串口命令控制LED灯开关
【1 】USART0选择UART模式,波特率9600,I/O引脚映射到备用位置1。【2】命令字“0xA1”,点亮D4灯,操作完成后,返回“D4 is open!”。【3】命令字“OxA2”,关闭D4灯,操作完成后,返回“D4 is closed!”。【4】命令字“OxB1”,点亮D6灯,操作完成后,返回"D6 is open!”。【5】命令字“OxB2”,关闭D6灯,操作完成后,返回“D6 is closed!”。#include"ioCC2530.h"#define D4 P1_1#defi
2021-05-24 08:48:20
3996
原创 十五、串口数据收发基础
【1】USART0选择UART模式,波特率9600,I/O引脚映射到备用位置1。【2】串口接收到上位机的一个数据后,在原值上加1,发回上位机。【3】D3灯作为数据接收指示灯,在接收到一个数据后,D3灯点亮;D5灯作为数据发送指示灯,在数据发送之前点亮,在数据发送完成后,D3灯和D5灯同时熄灭。#include"ioCC2530.h"#define D5 P1_3#define D3 P1_0//系统时钟切换函数void Set_Clock_32MHZ(){ CLKCONCMD&=
2021-05-24 08:47:46
513
原创 十四、串口数据发送基础
【1】USART0选择UART模式,波特率9600,I/O引脚映射到备用位置1。【2】利用看门狗定时器的定时功能实现1秒定时。【3】在看门狗中断服务函数中,由串口向上位机发送“Hello Word ! ",回车换行。D5灯作为数据发送指示灯,在字符串发送前点亮,在字符串发送结束后熄灭。#include"ioCC2530.h"#define D5 P1_3//系统时钟切换函数void Set_Clock_32MHZ(){ CLKCONCMD&=~0X40;//要操作的位为0100 0
2021-05-24 08:47:14
959
原创 十三、CC2530串口及相关寄存器
CC2530串口资源概述CC2530有两个串行通信接口USART0和USART1,它们能够分别运行于异步UART模式或者同步SPI模式。通常说的串口是指异步UART模式。波特率计算与设置CC2530的波特率由BAUD_E和BAUD_M共同决定。计算公式为:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hR6Caeo8-1621817061280)(十三、CC2530串口及相关寄存器.assets/clip_image002.gif)]由于计算公式较为复杂,但是我
2021-05-24 08:46:01
1907
原创 十二、CC2530系统时钟设置
CC2530系统时钟概述系统时钟源:32MHz的外部晶振或16MHz内部RC振荡器。32MHz外部晶振的启动时间对一些应用程序来说可能比较长,所以设备可以运行在16MHz的内部RC振荡器。系统上电默认是16MHZ的内部RC振荡器。RC振荡器的功耗少于外部晶振,但是精度不如外部晶振高,因此,要使用RF收发器,必须使用32MHz晶体振荡器。做Zigbee协议栈,做点对点BasicRF的数据传输都需要对晶振进行切换但是已经帮我们做好了。。。。。。。2.4G无线收发、串口通信是建议使用32MHz晶体振荡
2021-05-24 08:44:52
6190
原创 十一、看门狗定时器实现1秒定时
看门狗定时器实现1秒定时【1】将看门狗定时器设置成定时器模式。【2】定时周期选择1秒。【3】在看门狗中断服务函数中,切换D4灯的开关状态。# include"ioCC2530.h"#define D4 P1_1void Init_Port(){ P1SEL &=~0X1B; P1DIR |=0X1B; P1&=~0X1B;}//**************************************void Init_WDT(){ WDCTL=0X
2021-05-24 08:44:00
2256
原创 十、前后台程序设计思维模式及其应用
前后台的基本概念前台系统:一般指中断级程序,即中断服务函数后台系统:一般指任务级程序,即死循环中的主函数基本思维模式中断服务函数中的逻辑处理受到主函数运行的制约,主函数中的某些功能又取决于中断服务函数中的变量,两者相互关联,相互制约,协同运行。以“按键的长按与短按实现”为例:【前台工作】:定时器循环进行0.1秒间隔定时。按键按下,开始计算时间,按键松开,结束计算时间。【后台工作】:扫描按键状态,在按键按下和松开时分别标志不同的变量值,并且对按键的按下时间T进行判断,决定按键是长按还是短按。决
2021-05-23 10:21:23
803
原创 九、基于定时器的长按与短按
基于定时器的长按与短按【1】选择内部16MHz时钟的128分频作为计数器1的计数信号。【2】在定时器1的模模式中实现0.1秒的间隔定时。【3】当SW1按键长按松开后,切换D4灯的开光状态,当SW1按键短按松开后,切换D6灯的开光状态。【注】按键按下时间大于0.5秒,可定义为长按,反之为短按。# include"ioCC2530.h"#define D4 P1_1#define D6 P1_4#define SW1 P1_2unsigned int count=0;unsigned ch
2021-05-23 10:20:48
992
原创 八、基于定时器1模模式的秒闪灯
基于定时器1模模式的秒闪灯【1】选择内部16MHz时钟的128分频作为计数器1的计数信号。【2】在定时器1的模模式中实现0.1秒的间隔定时。【3】在中断服务函数中,实现1秒的间隔定时,并翻转D4灯的开关状态,以实现秒闪灯的功能,即D4灯亮1秒,灭1秒…实现3秒的间隔定时,并翻转D6灯的开关状态,即D6灯亮3秒,灭3秒…# include"ioCC2530.h"#define D4 P1_1#define D6 P1_4unsigned int count=0;void Init_Port()
2021-05-23 10:19:35
1350
原创 七、CC2530定时器
一 、 CC2530定时器定时器资源概述1、普通定时器CC2530共有5个定时/计数器,分别是:a. 定时器1:16位定时器,是CC2530中功能最全的一个定时/计数器,在应用中应优先选用。该定时器支持输入捕获、输出比较、PWM输出、能触发DMA功能,具有5个独立的捕获/比较通道,具有自由运行、模模式和正计数/倒计数三种不同工作模式。可以通过两个8位的寄存器读取定时器1的16位计数器值:T1CNTH和T1CNTL。当读取T1CNTL时,计数器的高位字节就会缓冲到T1CNTH,因此,我们必须
2021-05-23 10:19:08
12434
原创 六、外部中断控制LED灯开关
外部中断控制LED灯开关【1】启动后,D4灯循环闪烁,其他三个LED灯熄灭。(其实就是在模拟主程序的执行过程)【2】SW1按键,即P1_2引脚外部中断设置为下降沿触发。【3】设计中断服务函数,外部中断响应后,将D5灯的开关状态翻转。(在主程序的执行过程中进行一个中断)#include"ioCC2530.h" //引入头文件之后才能使用其中定义的一些寄存器的名称#define D3 P1_0#define D4 P1_1#define D5 P1_3#define D6 P1_4#defin
2021-05-23 10:18:22
4670
原创 五、CC2530的中断
1. CC2530的中断在执行CPU当前程序时,由于系统中出现了某种急需处理的情况,CPU暂停正在执行的程序,转而去执行另外一段特殊程序来处理出现的紧急事务,处理结束后,CPU自动返回到原来暂停的程序中去继续执行。这种程序在执行过程中由于外界的原因而被中间打断的情况,称为中断。中断号中断名称中断描述icCC2530.h中的宏定义0RFERRRF发送完成或接收完成#define RFERR_VECTOR VECT1ADCADC转换结束#define ADC_VEC
2021-05-23 10:17:45
4643
1
原创 四、 按键控制流水灯的运行与暂停
按键控制流水灯的运行与暂停项目要求:【1】程序开始时,4个LED灯全亮一会,然后,再全灭一会,开始进入跑马灯。 【2】跑马灯过程为:D4灯亮,其余熄灭,延时,D3灯亮,其余熄灭,延时,D6灯亮, 其余熄灭,延时,D5灯亮,其余熄灭,延时…如此反复。【3】按下SW1按键松开后,跑马灯暂停保留当前状态;再一次SW1按键松开后,从当前状态保留处继续运行跑马灯,在按下SW1按键时,不能打断流水灯的运行。#include"ioCC2530.h" //引入头文件之后才能使用其中定义的一些寄存器的名称#d
2021-05-23 10:17:12
12226
2
原创 三、按键
按键#include"ioCC2530.h" //引入头文件之后才能使用其中定义的一些寄存器的名称#define D3 P1_0#define D4 P1_1#define D5 P1_3#define D6 P1_4#define SW0 P0_1#define SW1 P1_2void delay(unsigned int t){ while(t--);}void Init_Port() //端口初始化函数。{ //配置LED引脚 P1
2021-05-23 10:16:49
778
原创 二、流水灯
流水灯程序#include"iocc2530.h" //引入头文件之后才能使用其中定义的一些寄存器的名称#define D3 P1_0#define D4 P1_1#define D5 P1_3#define D6 P1_4void delay(unsigned int t){ while(t--);}void Init_Port() //端口初始化函数。{ P1SEL&=~0X1B;//0001 1011。选择端口的功能,将其设为通用I/O端口,则将相应的位清0
2021-05-23 10:15:22
216
原创 一、CC2530简介
寄存器快速操作其实可以直接赋值,相对好理解,但是熟练之后还是这个方法比较快。一、只将寄存器中的某些位置1而不影响其它位使用或操作 “|” 。任何值与0相或,保持原值。任何值与1相或,结果为1.例如:寄存器TMP的当前值为0X62,要将第2、3、6位置1。C语言表达式:TMP|=0X4C。0X62:0110 00100X4C:0100 1100TMP= 0110 1110那么这个0X4C的值如何快速得到的?先假设寄存器所有位的值都是0,如TMP=0000 0000。再将要操作的位置全部
2021-05-23 10:12:28
10538
2
原创 差分专题
差分简述 在高速数字电路中常用两根线去传递一个信号。在PCB中常被叫做阻抗对,差分对,或者差分阻抗对。他们本身是两个信号(两个信号等值反相),这两根线要保持很好的阻抗,间距、线宽和长度经过很好的计算。 ——来自B站UP主:圈圈BG3MDO 。视频地址(点击即可进入)差分优势抗干扰能力强,因为两根差分走线之间的耦合很好。当外界存在噪声干扰时,几乎是同时被耦合到两条线上,而接收端关心的只是两信号的差值。所以外界的共模噪声可以被完全抵消。能有效印制EMI,同样的道理,由于两根信号
2021-05-04 18:02:53
1733
原创 MarkDown_Typora
目录语法 : [TOC/toc] +回车。文章目录目录标题写法在此写一级标题(#+空格+内容)在此写二级标题(#+空格+内容)字体有序列表无序列表任务列表分割线链接脚注锚点表格 (快捷键 Ctrl+T)行内代码代码块引用图片流程图标题写法在此写一级标题(#+空格+内容)在此写二级标题(#+空格+内容)以此类推,最多到六级标题。。。。。字体加粗、斜体、下划线直接在Typora的菜单栏→格式里面直接使用。高亮: ==高亮的内容== 高亮的内容下标语法:~下标的内容~
2021-04-17 18:15:24
618
原创 铜厚载流(未完待续)
1oz铜厚,在常规情况下,20mil能承载1A左右大小的电流。0.5oz的铜厚,在常规下,40mil能承载1A左右大小的电流。
2021-04-17 08:28:35
1462
原创 原理图中相同网络带颜色高亮
用此方法来高亮原理图中相同网络,便于分析原理图。值得注意的是在原理图中进行网络的高亮之后,在PCB的设计中也会在相应的网络中进行高亮,如下图所示。此时按F5(颜色的开关)可以关闭这些花里胡哨的颜色。...
2021-04-16 20:46:45
1421
原创 板上挖槽(挖孔)
法一:利用焊盘。调整其属性,槽孔因此不要盘,因此设置以下参数:并且不打勾金属化过孔选项。法二:在机械1层画出形状,并选中。快捷键 TVB 。
2021-04-11 14:53:51
560
原创 层(未完待续)
阻焊层:防止绿油覆盖。阻焊层将绿油阻挡焊盘在外面了。防止绿油串到焊盘上面。绿油是绝缘的,要是没有阻焊层,锡膏直接在油上面涂是焊不起来的。
2021-04-11 14:42:00
121
原创 3W原则
目的:为了减少走线之间的电磁串扰。两个走线中心间距至少得大于3倍的线宽。用规则进行约束,但是规则用的两线之间的距离是边缘距离。因此规则设置的值应为10.8 。 (即线宽的两倍10.8=5.4X2)...
2021-04-11 14:20:39
3479
原创 相同模块布局布线操作方法
在布局时可能会出现两个一模一样的模块(可能会有细微偏差,最后调整即可),为了节省时间,可以使用以下方法:1.创建room:先布局好相同模块中的其中一个模块→选择这个模块→→如此一来就创建了一个room,如下图所示:同样的操作给第二个未布局的相同模块也创建一个ROOM。2.对通道号(channel offset)进行匹配再次全部选中布局好的模块。右下角panels→PCB List 调出以下操作界面点击确定→点击位号进行排序,复制通道号。再全选未布局的那一堆器件,在再点击位号(使从相同的器件
2021-04-11 14:08:26
750
原创 层标识快速添加
画多层板时在相应的层加入层的名称,可方便快速了解目前处于第几层。然而手动添加浪费时间,以下为快速添加方法:按L切换层,名字会相应自动变化。
2021-04-11 10:34:07
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人