驱动
吴下_阿萌
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
USART
USART初始化结构体typedef struct{ uint32_t USART_BaudRate;//波特率 uint32_t USART_WordLength;//字长 uint32_t USART_StopBits;//停止位 uint32_t USART_Parity;//校验位 uint32_t USART_Mode;//USART模式 u原创 2017-11-07 15:24:15 · 4151 阅读 · 0 评论 -
使用SysTick延时
//使用中断定时void SysTick_Init(void){ if (SysTick_Config(SystemCoreClock / 100000) { while(1); }}/* 时钟频率是72MHz,T = 1 / (72 * 1000000), SystemCoreClock / 100000 = 720.如果想每原创 2017-12-27 19:02:00 · 1814 阅读 · 0 评论 -
按键检测与防抖
u8 KEY_Scan(u8 mode) { static u8 key_up=1;//按键按松开标志 if(mode)key_up=1; //支持连按 if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1)) { delay_ms(10);//去抖动 key_up=0;原创 2017-12-26 15:42:02 · 5676 阅读 · 0 评论 -
关于I2C心得总结
*1关于读写操作* 在读操作时候,先执行一个伪写操作,然后再执行读操作。I2C要求的。2关于时间的问题 一个晶振周期是晶振频率的倒数。 对于51单片机,一个机器周期是12个晶振周期。 一个nop()是一个机器周期。(具体nop()的时间见汇编) 对于时钟频率为11.0592Mhz的单片机,一个nop()是1us。对于I2C的时序要严格按照下图: 我们一般把delay()时间设置为5us。原创 2017-11-16 09:59:52 · 2329 阅读 · 0 评论 -
内存小结
程序和程序中的数据,比如数组里面的数据,这是存在ROM中。这部分数据不会被改变。是常亮。RAM中存储的是变量。在程序运行中会产生和改变的数据。如果一个变量被初始化了,初始化的数据是存在ROM中 ,RAM中只是存了这个数据的地址。如果在运行中改变这个数据,那么ROM中的数据不会被更改。只是RAM数据会更改。堆栈: RAM中的变量是存储在一个堆栈中。堆栈是在单片机的启动文件中定义的。 Stack_S原创 2017-12-26 13:26:32 · 228 阅读 · 0 评论 -
任务堆栈
typedef unsigned int OS_STK; //该类型长度为16位#define TASK_STK_SIZE 512 //定义堆栈长度(1024字节)/*当调用OSTaskCreate()来创建一个任务时,把数组指针传递给函数OSTaskCreate()的堆栈栈顶参数ptos,就可以把该数组与任务关联起来而成为该任务的任务堆栈*///已知创建任务函数原创 2017-11-23 18:47:13 · 672 阅读 · 0 评论 -
关于24C02地址问题
因为24C02最多可以存储256个字节 ,也就是从0到255,换成十六进制就是00H到FFH了。原创 2017-11-16 13:43:45 · 4108 阅读 · 0 评论 -
转载学习ucos的历程
ucos-ii操作系统的优异性能我就不说了,因为专家们说的太多了。非要说的话,只能是狗尾续貂。 我就说说自己对学习ucosii操作系统的一点学习心得。对我而言–非计算机专业的人刚开始接触操作系统是多么的痛苦,毕竟自己的c语言知识全靠自学得来的,况且对汇编语言几乎是一窍不通!学完51单片机以及编程后,曾对朋友吹嘘:c语言至少可以考70分(满分100),那时信心是何其饱满!如今自叹:c语转载 2017-11-21 13:59:31 · 606 阅读 · 0 评论 -
I2C关于读写控制位
*1、I2C协议简介* 2、空闲开始/应答/结束信号 2.1空闲 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 2.2 开始和结束 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向转载 2017-11-15 23:18:27 · 22306 阅读 · 2 评论 -
按键检测
1 按键检测有以下几个步骤 1、检测有无按键按下 2、逐行扫描(逐行扫描功耗比较小,也可以采用行列反转的方式, 但是功耗比较大,多用于交流电中)这里是四行三列的按键。U8 Keypad_scan(void){ static unsigned char result = 0; switch (Keypad_ScanPara.step) { case原创 2017-11-14 13:11:10 · 1811 阅读 · 0 评论 -
I2C
1、字节格式 发送到SDA线上的每个字节必须是8位,首先传输的是最高位(MSB)。如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接受或者发送写一个完整的数据字节,可以使时钟线SCL保持低电平迫使主机进入等待状态。当从机准备好接受下一个完整的并释放时钟线SCL后,数据继续传输。2、响应 数据传输必须带相应。相关相应时钟脉冲由主机产生。在相应时钟脉冲器件,接收器必须将SDA线拉低,使他原创 2017-11-09 13:00:33 · 344 阅读 · 0 评论 -
文章标题
/******************************************************************************Module : I2C接口文件.. Description : Build Date : others :Modification History: ifndef _I2C_DR原创 2017-10-18 17:16:58 · 220 阅读 · 0 评论 -
DMA
DMA:Data Memory Access,直接存储器访问。主要功能是可以把数据从一个地方搬到另一个地方,而且不占用CPU。DMA1:有7个通道,可以实现P->M,M->P, M->MDMA2:有5个通道,可以实现P->M,M->P, M->M原创 2017-11-07 23:04:28 · 239 阅读 · 0 评论 -
UART串口通信
1 平时TX,RX,为高电平,双方一旦检测到线路上是低电平,表示数据传输开始了。 发送结束时候,结束位为高电平,可以是1个,1.5个或者2个高电平。2 串口通信相关的函数,除了初始化的函数,其他的就是对两个寄存器操作。uint16_t USART_ReceiveData(USART_TypeDef* USARTx){ /* Receive Data */ return原创 2017-11-07 20:51:58 · 2126 阅读 · 0 评论 -
Cortex M3启动文件
启动文件是由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作。1、初始化堆栈指针 SP = _initial_sp2、初始化PC指针 = Reset_Handler3、初始化中断向量表4、配置系统时钟5、调用C库函数_main() 初始化用户堆栈,从而最终调用main函数去到C的世界启动文件ARM汇编指令EUQ 给数字常量取一个符号名,原创 2018-01-10 09:10:13 · 1164 阅读 · 0 评论
分享