单片机
文章平均质量分 77
xukai871105
现布勒中国物联网工程师 前阿里云工程师 专注于物联网IoT M2M应用
展开
-
MSP430Ware学习笔记 UART ACLK 9600-8-N-1
1.初始化UART0之前需要先初始化ACLK、SMCLK和MCLK。示例代码中使用XT1,ACLK为32768,SMCLK和MCLK约为8MHZ。2.UART的时钟可以参考ACLK或者SMCLK,本例参考ACLK。由于参考ACLK时钟,所以串口速率不能超过32768。选择9600较为合适。3.MSP430波特率的产生有两种模式,低频波特率产生和过采样波特率产生。代码中使用低频波特率产生。其原创 2013-06-05 16:29:05 · 4865 阅读 · 0 评论 -
CC2430 串口使用详解
为了完成课题,最近下定决心学习CC2430。网上的资料很多,重复的部分不做过多的介绍,没有的部分做一下少许的补充,希望对大家有用!全部代码如下,先看一下整体!//头文件#include "hal.h"#include "stdio.h"// 函数声明UINT8 UART0_Init();void main(){ //使用外部时钟 SET_MAI原创 2012-02-28 20:33:32 · 8234 阅读 · 13 评论 -
CC2430 Joystick硬件说明
CC2430 Joystick 硬件说明1 目标 学习了CC2430的AD,UART和Timer之后,感觉自己有点入门了,接着做一点人机交互的内容。在这里我介绍一下Joystick的硬件连接。刚开始看Joystick的硬件部分的时候,还很的觉得有点麻烦的,后来把这个电路分解为反相放大器,同相放大器之后,问题就好解决多了。2 分解Joystick的4个按钮原创 2012-03-07 16:26:52 · 3924 阅读 · 0 评论 -
CC2430 CC2530 AD转换分辨率之“争”
CC2430 CC2530 片内AD转换详解1 本周五开始就开始学习CC2430的AD转换模块。看似简单,但是费了我休息日全部的时间。其中最严重的问题——这个片内的AD转换的分辨率到底是多少位,12位还是14位。 开门见山:经过多次试验和查找的资料,我认为TI的数据手册是对的,最高分辨率为12位,分为4档 7位,9位,10位和12位。毫无疑问,CC2430/原创 2012-03-04 21:31:56 · 11187 阅读 · 10 评论 -
MSP430Ware学习笔记 UART SMCLK 115200-8-N-1
1.初始化UART0之前需要先初始化ACLK、SMCLK和MCLK。示例代码中使用XT1,ACLK为32768,SMCLK和MCLK约为8MHZ。2.UART的时钟可以参考ACLK或者SMCLK,本例参考SMCLK。波特率提高至1152003.MSP430波特率的产生有两种模式,低频波特率产生和过采样波特率产生。代码中使用过采样波特率产生。其实,两种模式可以达到相似的效果。4.代码的开原创 2013-06-05 16:38:23 · 4609 阅读 · 4 评论 -
AVR Studio 6设置技巧
好久没有写博客文章了。这段时间课题完成正在整理材料,回过头来重新认识了一下AVR。孔子说过,温故而知新,可以为师也。的确,复习一下AVR单片机还是获得了很多乐趣!下面就分享一下AVR Studio 6中的部分设置技巧!1.字体和TAB键的设置。由于AVR Studio 6采用Visual Studio 2010外壳,所以这部分的设置和VS完全相同。选择tools->option原创 2013-01-09 14:49:06 · 11608 阅读 · 6 评论 -
MSP430F5438学习笔记 basic io
1.熟悉MSP430的时钟系统2.操作GPIO原创 2013-06-03 16:31:10 · 2142 阅读 · 0 评论 -
MSP430F5438学习笔记 UART SMCLK 115200-8-N-1
MSP430中 UCBR0、UCBR1和UCBRF的设置值可以通过计算,也通过通过查表获得。我个人倾向于查表法。具体可以参考以下两张图表。默认情况,ACLK为32768MHZ,而SMCLK为1048576。选择ACLK时波特率最大为9600,大于9600的情况只能使用SMCLK,波特率的设置和SMCLK的时钟频率有关,我个人更倾向于设置SMCLK和MCLK为8MHz。// 时钟原创 2013-06-06 12:47:34 · 10736 阅读 · 6 评论 -
MSP430F5438 定时器总结
1.MSP430F5438有三个定时器 TA0 TA1和TB,定时器的功能略有区别。2.对于定时器TA1而言,有两个中断向量地址,其中比较匹配通道0具有单独的中断向量3.MSP430中断向量的名称和TA0 TA1很难对应起来,需要通过中断向量地址来确认。#define TIMER1_A1_VECTOR (48 * 2u) /* 0xFFE0 Timer1_A3 CC1-2, TA原创 2013-06-07 11:05:06 · 7537 阅读 · 0 评论 -
CC2530 RF部分使用 ——实现点对点收发
本文将分析一个利用CC2530实现无线串口的程序。原创 2013-08-11 11:09:47 · 54782 阅读 · 64 评论 -
MSP430F5438 I2C学习笔记——AT24C02
对于大多数单片机来说,I2C成了一个老大难问题。从51时代开始,软件模拟I2C成了主流,甚至到ARMCortex M3大行其道的今天,软件模拟I2C依然是使用最广的方法。虽然软件模拟可以解决所有的问题,但是总感觉没有充分发挥MCU内部的硬件资源。查阅了所有关于MSP430F5系列的图书,没有关于硬件I2C的应用代码,自己通过调试摸索,把经验总结之后和大家分享,希望大家喜欢。原创 2013-08-24 23:06:53 · 22169 阅读 · 30 评论 -
如何在FreeRTOS下实现低功耗——MSP430F5438平台
MCU实现低功耗本质而言便是停止MCU工作,通过中断的方式重新唤醒MCU,这些中断可以包括外部IO中断,UART接收中断,定时器中断等等。如果结合嵌入式操作系统,可以在空任务或者空任务钩子函数中进入低功耗模式,在系统滴答时钟中断服务函数中重新回到正常工作模式。利用操作系统进入和退出低功耗模式,需要熟悉嵌入式操作系统的空任务和系统滴答时钟中断,下面结合MSP430F5438和Fr原创 2013-10-15 16:21:11 · 17485 阅读 · 4 评论 -
I2C操作笔记——以 AT24C04为例
对于大多数工程师而言,I2C永远是一个头疼的问题。相比UART和SPI而言,I2C的时序要复杂一些,I2C组合变化也丰富一些。在这里以AT24C04为例说明I2C使用过程中的一些注意点。原创 2013-11-10 14:46:01 · 67978 阅读 · 12 评论 -
CC2430 片内AD使用详解——查询法
CC2430 ADC使用——查询法1 目标 熟悉使用CC2430的ADC功能。根据我自己开发板的情况,我使用P07作为AD转换的输入口,使用一个旋转电位器来调整输入端口的电压,通过串口发送AD转换结果。在这里还是说说ADC的结构。CC2430的ADC是基于sigma-delta原理,而不是常用的逐次比较式,通过不同的抽取率来实现不同的转换精度。2 代码总原创 2012-03-06 20:42:37 · 6012 阅读 · 5 评论 -
CC2430 初学注意点 IAR和Flash Programmer
本人初学CC2430,虽然不是初学单片机,也不是初次河蟹IDE,更不是初次使用flash programmer。但是在使用的过程中还是遇到了非常多的问题,虽然是一个小问题,但是还是把我给折腾坏了。补充说一下,为什么我选择CC2430而不是CC2530CC2430的书籍资料比较多。我个人比较喜欢从书籍开始,我选择了ZigBee技术实践教程,有本书和数据手册在手的话,学习的速度可以提高很快。从原创 2012-02-27 16:17:21 · 6779 阅读 · 9 评论 -
MSP430Ware使用笔记 初始化XT1
1.平台说明 MSP430F54382.为什么使用MSPWare。由于工作原因,学校中多使用STM32,STM32的DriverLib比较方便使用。初学MSP430重新回到了操作寄存器的时代,稍稍有点不适应。后来发现MSP也有DriverLib只是使用的人不多,就这范例文档一点一点摸索,并和寄存器操作相比较。经过了一段时间的努力也就熟悉了。3.嵌入式系统编程趋势个人认为,Drive原创 2013-06-03 17:25:50 · 3929 阅读 · 1 评论 -
MSP430Ware使用笔记 初始化DCO至8MHz
1.平台说明MSP430F5438。2.ACLK选择XT1,频率为32.768K,MCLK和SMCLK选择DCOCLKDIV,频率为8000K。// 辅助时钟 ACLK 32.768K// 系统时钟 子系统时钟 8000K#include "inc/hw_memmap.h"#include "ucs.h"#include "wdt_a.h"#include "gpio.h"原创 2013-06-03 17:31:12 · 4293 阅读 · 1 评论 -
MSP430F5438学习笔记 定时器TA1 比较匹配CCR0
// 时钟默认情况// FLL时钟 FLL选择 XT1// 辅助时钟 ACLK选择 XT1 32768Hz// 主系统时钟 MCLK选择 DCOCLKDIV 8000000Hz// 子系统时钟 SMCLK选择 DCOCLKDIV 8000000Hz// TA1选择ACLK,最大计数值为16384,中断频率为2HZ// 在TIMER1原创 2013-06-06 17:30:12 · 5860 阅读 · 0 评论 -
MSP430F5438学习笔记 DCO倍频至8MHZ
1.平台说明 MS430F5438// 时钟默认情况// FLL时钟 FLL选择 XT1// 辅助时钟 ACLK选择 XT1 32768Hz// 主系统时钟 MCLK选择 DCOCLKDIV 1048576Hz// 子系统时钟 SMCLK选择 DCOCLKDIV 1048576Hz#include void clock_co原创 2013-06-03 16:40:56 · 5793 阅读 · 0 评论 -
MSP430F5438学习笔记 TA1溢出中断加比较匹配中断
// 时钟默认情况// FLL时钟 FLL选择 XT1// 辅助时钟 ACLK选择 XT1 32768Hz// 主系统时钟 MCLK选择 DCOCLKDIV 8000000Hz// 子系统时钟 SMCLK选择 DCOCLKDIV 8000000Hz// TA1选择ACLK,最大计数值为65535// 比较匹配值为 32768//原创 2013-06-07 10:25:37 · 4589 阅读 · 4 评论 -
MSP430F5438中断函数两种编写方法
以USCI0为例,说明该两种不同方法。1.switch-case方法#pragma vector=USCI_A0_VECTOR__interrupt void USCI_A0_ISR(void){ switch(__even_in_range(UCA0IV,4)) { case 0: break; case 2:原创 2013-10-24 13:24:41 · 4874 阅读 · 0 评论 -
MSP430F5438学习笔记 UART ACLK 9600-8-N-1
1.初始化UART0之前需要先初始化ACLK、SMCLK和MCLK。示例代码中使用XT1,ACLK为32768,SMCLK和MCLK约为8MHZ。2.UART的时钟可以参考ACLK或者SMCLK,本例参考ACLK。由于参考ACLK时钟,所以串口速率不能超过32768。选择9600较为合适。3.MSP430波特率的产生有两种模式,低频波特率产生和过采样波特率产生。代码中使用低频波特率产生。原创 2013-06-05 17:30:46 · 9199 阅读 · 8 评论 -
MSP430F5438 ADC12学习笔记
1.前言这几天实践了MSP430的ADC12功能,虽然片内AD功能比较简单但是还学出了点“门道”来,这个“门道”便是MSP430F5438A和MSP430F5438的区别。这里通过一个例子说明片内ADC的使用,首先实现UART和定时器1S溢出的功能,在上述功能的基础上每1S打印一次AD转换结果,转换通道定向到通道11,该通道对应AVCC和AVSS插值的一半,由于AVCC和LDO的输出之间只有一原创 2013-10-23 15:44:53 · 13088 阅读 · 6 评论 -
MSP430F5438学习笔记 FLAHS操作
1.前言MSP430F5438的片内FLASH可以当做EEPROM使用,该部分FLASH称为INFO FLASH,总共有4块每块128Byte。虽然INFO FLASH容量比较少,但是多数情况还是够用的。2.代码实现// 时钟默认情况// FLL时钟 FLL选择 XT1// 辅助时钟 ACLK选择 XT1 32768Hz// 主系统时钟原创 2013-10-24 14:41:50 · 6576 阅读 · 0 评论 -
MSP430F5438学习笔记 初始化XT1
// 时钟默认情况// FLL时钟 FLL选择 XT1// 辅助时钟 ACLK选择 XT1 32768Hz// 主系统时钟 MCLK选择 DCOCLKDIV 1048576Hz// 子系统时钟 SMCLK选择 DCOCLKDIV 1048576Hz#include int main(void){ WDTCTL = WDTP原创 2013-06-03 16:38:24 · 3778 阅读 · 0 评论 -
CC2430 标志和屏蔽的含义
CC2430 CC2530标志和屏蔽的含义在学习CC2430的时候,经常遇到“屏蔽”和“标志”等术语。在阅读《ZIgBee技术实践教程》时,发现书中部分寄存器中关于“屏蔽”和“标志”的说明和数据手册有出入,所以在这里归纳一下。XX屏蔽,以IM结尾interrupt mask例如OVFIM,T1CCTL1.IM。这些标志决定了中断是否发生。如果该位置位,则该中断条件满足时会发生中断。注原创 2012-03-05 20:32:53 · 2089 阅读 · 2 评论 -
CC2430 定时器溢出中断 详解
定时器1使用总结——溢出中断1 目的说明 实现定时器最简单的溢出中断,结合我手头的开发板,使得位于P10的LED灯,以2HZ的速度不断闪烁。这样的实验还是非常亲切的,让我想起了第一次在51上实现了这样的代码,自己第一次在CC2430上实现,依然非常激动。2 使用方法概述 需要使用定时器的中断,需要知道如何操作才可以产生这个中断请求。数据手册中原创 2012-03-05 19:38:11 · 10570 阅读 · 7 评论 -
FreeRTOS CortexM3 M4中断优先级设置总结
前言本文将说明在FreeRTOS嵌入式操作系统中,如何设置STM32 Cortex M3和M4系列MCU的中断优先级。总结【1】STM32L1系列,STM32F1系列,STM32F4系列,设置NVIC时需要使用NVIC_PriorityGroup_4。【2】抢占优先级的要比“MAX”更大,而比“LOWEST”更小。例如configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO原创 2016-12-08 13:13:23 · 11634 阅读 · 2 评论