![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
mcgrady_tracy
这个作者很懒,什么都没留下…
展开
-
cortex-m3寄存器描述
cortex-m3寄存器描述cortex-m3处理器包含如下32位寄存器:13个通用寄存器组栈指针寄存器SP,cortex-m3包含两个栈指针寄存器,主栈指针寄存器和进程栈指针寄存器。主栈指针寄存器为缺省栈指针寄存器,用于操作系统和异常处理,进程栈指针寄存器供用户应用程序使用。链接结存器LR程序计数器PC程序状态寄存器xPSR原创 2013-02-20 14:22:51 · 3610 阅读 · 0 评论 -
8051定时器的使用
8051定时器/计数器介绍:8051有两个定时器/计数器,而8052则有三个定时器/计数器。定时器、计数器本质都是一样的,定时器通过对内部脉冲进行计数来达到计时的目的,而计数器是对外部输入脉冲进行计数,所以它们的本质都是一样的。定时器/计数器的工作模式:定时器/计数器0有四种工作模式,而定时器/计数器1只有三种工作模式,工作模式由TMOD寄存器的M1和M0位控制。M1 M0 工原创 2014-01-15 16:27:46 · 11353 阅读 · 0 评论 -
sdcc和Makefile的例子
还是前面的main.c#include #define led1 P2_0void delayms(unsigned int ms){ unsigned int x, y; for (y = ms; y > 0; y--) { for (x = 227; x > 0; x--); }}void mai原创 2014-01-11 22:02:36 · 3524 阅读 · 0 评论 -
sdcc 中断使用中的一个问题
在sdcc中,中断处理函数使用关键字__interrupt标识,后面跟上中断号,8051中断号列表如下:Interrupt # Description Vector Address 0 External 0 0x0003 1 Timer 0 0x000b 2 Exter原创 2014-04-01 14:19:17 · 5195 阅读 · 3 评论 -
ubuntu下搭建msp430开发环境
从这里下载gcc:http://sourceforge.net/projects/mspgcc/下载下来之后是一个zip包,解压出来,然后设置环境变量,例如:export PATH=$PATH:$HOME/tools/mspgcc-20120406-p20120911/bin可以编译一个简单的程序测试一下,例如:#include void main(void){ WDTCT原创 2014-11-26 10:25:37 · 1957 阅读 · 1 评论 -
stm8 rtc时钟
stm8 rtc时钟可以使用内部低频时钟源,或者外部低速32768Hz时钟源,关于rtc部分代码如下:#include #include void init_rtc(void){ RTC_InitTypeDef RTC_InitStr; RTC_TimeTypeDef RTC_TimeStr; RTC_DateTypeDef RTC_DateStr;#if 1 /* LSI *原创 2016-02-17 17:21:59 · 13349 阅读 · 1 评论 -
stm8 clock
stm8时钟源有4种:1. 16MHz的高速内部时钟源HSI2. 1到16MHz的高速外部时钟源HSE3. 32.768KHz的低速外部时钟源4. 38KHz的低速内部时钟源这4种时钟源都可以作为系统时钟,大家也可以用示波器量一下59引脚,看输出的的时钟频率是否正确,在量之前需要做如下设置:void main(void){ GPIO_Init(GPIOC, GPIO_P原创 2016-02-25 14:01:03 · 1680 阅读 · 0 评论 -
libopencm3库的使用
libopencm3是开源的cortex-m系列单片机的固件库,支持stm32、atmel、nxp等等系列单片机。在Linux下编译需要交叉编译器gcc,从这里下载:https://launchpad.net/gcc-arm-embedded/+download,下载编译好的Linux下的版本就可以了。解压缩,设置环境变量,使用arm-none-eabi-gcc -v命令测试一下设原创 2017-11-10 17:32:49 · 5355 阅读 · 0 评论 -
RT-Thread初探
试验平台:正点原子探索者STM32F407开发板一、RT-Thread介绍RT-Thread是由国内开发者主导开发的一款开源嵌入式实时操作系统,它包含:操作系统内核、TCP/IP协议栈、文件系统、libc接口,图形引擎等等。RT-Thread官网:https://www.rt-thread.org/代码地址:https://github.com/RT-Thread/rt-thread二、RT-Th...原创 2018-02-01 16:55:53 · 8281 阅读 · 2 评论 -
8051单片机串口波特率和定时器1的初值计算
在模式0和模式2下,串口波特率固定,模式0为Fosc/12。模式2为Fosc/32或Fosc/64,具体由PCON寄存器的SMOD位决定。在模式1和模式3下,波特率是一个可变值,波特率可以由定时器1产生(8052可以由定时2产生),那么波特率到底为多少呢?波特率由定时器1的溢出率来决定:Baud Rate = (2SMOD/32)*(Timer 1 Overflow Rate)注意:2原创 2014-01-22 16:44:06 · 25820 阅读 · 2 评论 -
51单片机串口通信及波特率设置
原文转载自:http://blog.csdn.net/hzqt210/article/details/6496989MCS-51单片机具有一个全双工的串行通信接口,能同时进行发送和接收。它可以作为UART(通用异步接收和发送器)使用,也可以作为同步的移位寄存器使用。1. 数据缓冲寄存器SBUF SBUF是可以直接寻址的专用寄存器。物理上,它对应着两个寄转载 2014-01-22 16:30:09 · 26229 阅读 · 0 评论 -
data,bdata,idata,pdata,xdata,code存储类型与存储区
原文转载自:http://blog.csdn.net/dpear/article/details/1781523bit是在内部数据存储空间中 20H .. 2FH 区域中一个位的地址,或者 8051 位可寻址 SFR 的一个位地址。code是在 0000H .. 0FFFFH 之间的一个代码地址。data是在 0 到 127 之间的一个数据存储器地址,或转载 2013-03-13 15:37:54 · 1160 阅读 · 0 评论 -
cortex-M3 GNU开发环境搭建
平台:Linux1. 下载GNU工具链从此处下载:https://launchpad.net/gcc-arm-embedded/+download2. 解压例如:tar -jvxf gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz23. 指定其PATHexport PATH=$PATH:/yourp原创 2013-10-18 16:45:35 · 3389 阅读 · 0 评论 -
Cortex-M3向量表
Cortex-M3支持大量的中断和异常,其中包括CM3固有的和芯片本身所特有的,具体有多少个中断得由芯片制造商决定。向量表:向量表其实是一个word(32位)型数组,其中每一项代表一种异常的起始地址,当有异常发生时,相应的异常处理函数将被执行。向量表是可以重定位的,重定位由NVIC来控制。复位时,重定位控制寄存器初始值为0,所以在复位时,向量表必须存放在0地址处。向量表定义如下:原创 2013-10-19 15:06:10 · 3387 阅读 · 0 评论 -
Linux sdcc安装
可以从这里下载:http://sourceforge.net/projects/sdcc/files/你可以下载源代码来编译安装,当然也可以直接下载编译好的二进制文件,Linux x86平台下为:sdcc-linux-x86。最新版本为3.3.0,这里有下载好的一份:http://download.csdn.net/detail/mcgrady_tracy/6798197对照INSTALL原创 2014-01-02 11:15:36 · 5858 阅读 · 0 评论 -
sdcc的一个简单的示例
首先编写一个源文件假设为main.c,内容如下:#include #define led1 P2_0void delayms(unsigned int ms){ unsigned int x, y; for (y = ms; y > 0; y--) { for (x = 227; x > 0; x--);原创 2014-01-10 17:15:08 · 8478 阅读 · 2 评论 -
sdcc多文件的编译
还是前面的main.c,分割成两个源文件,main.c如下:#include #include "delay.h"#define led1 P2_0void main(void){ while (1) { led1 = 0; delayms(1000); led1 = 1;原创 2014-01-13 14:58:47 · 4465 阅读 · 1 评论 -
多Makefile的例子
还是以前面的例子,通常我们并不将所有的源代码和Makefile放在同一个目录下,尤其对比较大的工程而言。在这里假设有led这个工程,在led这个工程目录下有个main目录,main目录下的文件为前面的main.c、delay.c和delay.h,main目录下的Makefile如下:CC = sdccall:delay.rel main.reldelay.rel:delay.c原创 2014-01-13 22:11:38 · 1168 阅读 · 0 评论 -
8051存储区布局
Intel 8051 memory介绍:8051具有4K的片上ROM,128字节的片上RAM,同时它具有64K的寻址能力,也就是可以扩展程序存储空间和数据存储空间多大64K。1. 程序存储空间8051有4K的片上ROM,该区域是只读的,在sdcc中,可以使用关键字__code将变量存储在该区域中,例如:__code unsigned char test_code;2.原创 2014-01-14 16:57:49 · 4979 阅读 · 0 评论 -
RT-Thread线程
1. 线程创建线程的创建可以使用rt_thread_create()函数,原型如下:rt_thread_t rt_thread_create(const char *name, void (*entry)(void *parameter), void *paramet原创 2018-02-05 16:40:07 · 1415 阅读 · 0 评论