【文件属性】:
文件名称:STM32 串口中断方式例程
文件大小:459KB
文件格式:RAR
更新时间:2015-08-22 04:55:11
STM32 串口
STM32 串口中断方式例程
/*----------------------------------------------------------------------------
USART1_IRQHandler
Handles USART1 global interrupt request.
*----------------------------------------------------------------------------*/
void USART1_IRQHandler (void) {
volatile unsigned int IIR;
struct buf_st *p;
IIR = USART1->SR;
if (IIR & USART_FLAG_RXNE) { // read interrupt
USART1->SR &= ~USART_FLAG_RXNE; // clear interrupt
p = &rbuf;
if (((p->in - p->out) & ~(RBUF_SIZE-1)) == 0) {
p->buf [p->in & (RBUF_SIZE-1)] = (USART1->DR & 0x1FF);
p->in++;
}
}
if (IIR & USART_FLAG_TXE) {
USART1->SR &= ~USART_FLAG_TXE; // clear interrupt
p = &tbuf;
if (p->in != p->out) {
USART1->DR = (p->buf [p->out & (TBUF_SIZE-1)] & 0x1FF);
p->out++;
tx_restart = 0;
}
else {
tx_restart = 1;
USART1->CR1 &= ~USART_FLAG_TXE; // disable TX interrupt if nothing to send
}
}
}
【文件预览】:
实验6-USART_Irq串口中断方式
----说明.txt(178B)
----Usart_Opt.Bak(3KB)
----Usart.Opt(4KB)
----STM32F10x.s(11KB)
----Abstract.txt(881B)
----STM32_Init.c(302KB)
----JLinkLog.txt(257KB)
----Usart_RAM.dep(6KB)
----STM32_Init.c.bak(302KB)
----STM32_Init.h(1KB)
----Usart.Uv2(7KB)
----out()
--------LstRAM()
--------ObjSim()
--------LstFlash()
--------LstSim()
--------ObjFlash()
--------ObjRAM()
----Usart.c(6KB)
----Usart_Uv2.Bak(7KB)
----RAM.ini(1KB)
----STM32_Reg.h(8KB)
----Retarget.c(2KB)
----Usart_FLASH.dep(6KB)
网友评论
- 程序不错,可以借鉴
- 非常好! stm32,keil工程。串口中断处理,有代表性。收和发都中断方式,包含printf等库函数重定向。