- 博客(11)
- 收藏
- 关注
原创 MC9S12G128 PLL设置
对于一款单片机的使用,首先要知道的就是总线时钟,对于飞思卡尔单片机MC9S12G128而言,其时钟有下图所示:如大多单片机那样,MC9S12G128单片机也有外部晶振和内部晶振,而总线时钟是经过各种分频和变频得到,总线时钟的设置,直接关系到定时器、串口波特率等,在这里选用的是外部晶振经过变换得到的总线时钟。如下图所示,fbus为最后要得到的总线时钟频率,其等于fPLL/2,那么
2018-02-01 15:51:10 2865 3
原创 uart通信判断数据接收完成方法——超时检测法
之前一直在想串口中断函数里面怎么判断接收的数据是否收完,其中一种方法可以规定好接收回来的数据的数据格式,比方说固定以换行字符作为结束符号,但是这个方法的问题在于有时候不一定规定得了,换句话说假如单片机和某个芯片模块进行通信,而那个模块发送的数据字节我们则是没办法规定它是以什么结束的,如果是单片机和单片机通信的话就可以。而我后来网上查找资料发现还有一种方法就是超时检测法。超时检测法其实原理也很简
2017-10-18 13:38:34 17163 4
原创 通信协议——uart
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上,且UART可实现全双工通信。 UART初始化需要定义的一些参数:1. 起始位2.
2017-10-08 09:38:58 2859
原创 C语言const的修饰
1.修饰变量用const声明一个变量,其值是不可改变的,例如:const int dat;dat = 1; //这是错误的,dat的值不可改变对const变量只能在初始化的时候赋值,并且一旦赋值后其值不可改变,正确初始化const变量如下:const int dat = 1;2.修饰指针对于用const声明指针,其一共有三种情况,具体如下:(1)con
2017-09-12 17:29:57 671
原创 μcos-II任务延时
μcos-II中运行的程序是多任务的,但每次只能有一个任务获得CPU使用权然后运行程序,而每个任务自身却又都是无限循环的,那么问题就来了,既然每个任务都是无限循环的,那么μcos-II系统是怎么做到任务之间能够相互切换的呢? 这就涉及到了任务延时的问题,为了保证任务能够进行切换,每个任务就得在自己执行的程序里面调用延时函数,例如OSTimeDly()函数,使当前的任务在运行到延时函数
2017-09-08 15:50:39 552
原创 通信协议——SPI总线
一、SPI总线基础概述 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,分别是: 1)、MOSI——Master Output Slave Input主机输出从机输入 2)、MISO——Master Input Slave Output主机输入从机输出 3)SCLK——时钟信号,由主机产生 4)、CS——从机使能信号(
2017-09-07 20:10:03 830
原创 μcos-II任务堆栈、任务控制块和任务代码
μcos-II中的任务由任务堆栈、任务控制块和任务代码三部分所组成,其每部分具体作用如下:任务堆栈——任务堆栈是用来保存一个任务运行时CPU的一些寄存器里面存放的一些数据、任务指针、程序状态字PSW等等,而当该任务需要挂起时,任务堆栈会保存该任务的运行现场,即保存运行到此时的一些数据等,然后当该任务重新运行时,就会把堆栈里的内容重新复制到CPU的相关寄存器,从而使任务继续从挂起的部分重
2017-09-07 15:12:54 1499 1
原创 预处理命令
C语言的预处理指令有三类,一是宏定义,二是文件包含,三是条件编译。预处理命令以符号“#”开头 1 宏定义宏定义主要是#define,其又分为带参数定义和不带参数定义,例子如下带参数定义#define PI 3.14不带参数定义#define ST STR在一些头文件定义中常使用#define EXAMPLE(标识符)其
2017-08-23 21:28:02 552
原创 通信协议——I2C总线
I2C总线是一种简单、双向二线制同步串行总线,由SCL和SDA两根线即可连接于总线上的器件之间传送信息。其中SCL为时钟线,SDA为数据线,在时钟线SCL控制的时钟信号下,SDA进行数据的传送,而SDA上传送的每个字节必须为8位,每个字节后跟一个响应位,而传输是一位位进行的,其首先传输的是最高位。一、主从机I2C通信过程:1.主机发送过程1)起始信号,即SDA和SC
2017-08-23 21:26:34 894
原创 指针和变量
首先了解一下一些相关的概念:1)指针变量:存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。2)&:取地址运算符,如&a是变量a的地址。3)*:指针运算符(或称“间接访问”运算符),*a代表指针变量a指向的对象。4)int 是整型数据类型,int i,i是该类型的变量,i是整型变量
2017-08-15 13:41:24 678
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人