摘要: stm32串口功能比较强大,但仅仅使用串口来说,是很简单的我们要做的事1.使能串口时钟2.复位串口3.设置串口波特率4.设置数据长度,停止位5.收发使能6.串口使能 1 int main() 2 { 3 u8 buf; 4 sysclk_init(9); 5 6 RCC->APB2ENR|=1APB2RSTR|=1APB2RSTR&=~(1BRR=0x1D4C;//设置波特率11 USART1->CR1|=0x200c;//停止位在USART->CR2中,默认为1位停止位12 //13 14 while(1)15 {16 ... 阅读全文
posted @ 2013-08-21 10:19 Skey Studio 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 1 void SPIx_Init(void) 2 { 3 RCC->APB2ENR|=1APB2ENR|=1CRL&=0X000FFFFF; 8 GPIOA->CRL|=0XBBB00000;//PA5.6.7复用推挽输出 9 //GPIOA->ODR|=0X7CR1&=~(1CR1&=~(1CR1&=~(1CR1|=0CR1|=0CR1|=1CR1|=1CR1|=0CR1|=0CR1|=1CR1|=1CR1|=1CR1|=1<<6; //1:开启SPI 0:关闭SPI24 } 阅读全文
posted @ 2013-08-07 16:25 Skey Studio 阅读(1096) 评论(0) 推荐(0) 编辑
摘要: DMA可以认为连接两个“地址”数据通道。DMA共享系统总线,不占用CPU,所以可以实现快速数据传输。这里以DMA连接存储器(数组)和串口(USART1->DR)为例。 1 void DMA_init(void) 2 { 4 RCC->AHBENR|=1CPAR=(u32)&USART1->DR;//读外设串口数据寄存器 8 DMA1_Channel4->CMAR=(u32)tbuff;//存储器地址为temp地址 9 DMA1_Channel4->CNDTR=10;//一次接收字节数DMA_BUFF_SIZE11 //DNA->CCR配置12 DMA 阅读全文
posted @ 2013-08-07 10:45 Skey Studio 阅读(1096) 评论(0) 推荐(0) 编辑
摘要: 如图1:时钟树,可见Stm32有5个时钟源。8M HSI RC:内部时钟,从图上看,有两路分支,一个是直接作为系统时钟SYSCLK使用,另一个是先二分频后,再通过PLLMUL倍频作为系统时钟SYSCLK4-16M HSE OSC:外部晶振作为时钟源,可以看做有3路分支,第一是直接作为系统时钟SYSCLK使用,第二个通过PLL倍频后作为系统时钟SYSCLK,第三个是128分频后作为RTC时钟输入32.768kHz LSE OSC:低速外部时钟源,可直接用作RTC时钟输入40kHz LSI RC:低速内部时钟源,有两路分支,一个用作RTC时钟,一个用作看门狗时钟PLLCLK:可以直接看做倍频器,也 阅读全文
posted @ 2013-07-10 08:39 Skey Studio 阅读(2836) 评论(0) 推荐(0) 编辑
摘要: 对于NVIC的任务,可以概括为三个:1.配置中断向量表--如果不配置,则不能进入中断 SCB->VTOR2.配置系统中断分组--决定了第一和第二优先级各占用的位数 SCB->AIRCR3.配置对应中断优先级和使能中断--中断使能 ISER[0/1] 中断优先级IPR[0:15]只要按照这样配置,就可以使用中断了 1 /****************************************************** 2 *函数: NVIC_Group(u8 group) 3 *功能: 设置中断分组 4 *参数: group-对应分组号 0~4 共5组 5 ... 阅读全文
posted @ 2013-07-08 09:28 Skey Studio 阅读(1010) 评论(0) 推荐(0) 编辑
摘要: 开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候。推挽输出就是单片机引脚可以直接输出高电平电压。低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。 阅读全文
posted @ 2013-07-03 22:42 Skey Studio 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 看了一天的stm32的中断配置,对NVIC有了基本的了解(要了解NVIC,可以看《cortex M3权威指南》)。总结为3步:1.设置中断分组寄存器 AIRCR共0~4五组。地址:0xe000E_d00C2.设置对应中断优先级 NVIC->IPR[x]x=0~15配置60个中断优先级,每个中断一字节控制,只用到高4位地址:0xE000_E4003.使能对应中断 NVIC->ISER[x]x=0~1 每一位对应一个外部中断使能地址:0xE00_E100void exti_init()//外部中断15~10 中断编号:40{RCC->APB2ENR|=1APB2ENR|=1CRH 阅读全文
posted @ 2013-07-03 18:21 Skey Studio 阅读(422) 评论(0) 推荐(0) 编辑