历史上的今天
今天是:2024年12月10日(星期二)
2018年12月10日 | stm32 USART_IT_IDLE中断 一帧数据
2018-12-10
USART_IT_IDLE中断,是串口收到一帧数据后,发生的中断。也可以叫做一包数据
USART_IT_IDLE和USART_IT_RXNE区别
当接收到1个字节,会产生USART_IT_RXNE中断
当接收到一帧数据,就会产生USART_IT_IDLE中断
清中断方法
//USART_IT_RXNE
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
//USART_IT_IDLE
USART1->SR; //先读SR寄存器
USART1->DR; //再读DR寄存器
使用举例
u8 count;
u8 flag;
void uart_init(u32 bound)
{
...
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);
...
}
void USART1_IRQHandler(void)
{
u8 r;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USART1, USART_IT_RXNE); //只USART_ReceiveData也可以
//r = USART_ReceiveData(USART1);
count++;
}
else if(USART_GetFlagStatus(USART1, USART_FLAG_IDLE) != RESET)
{
USART1->SR;
USART1->DR;
flag = 1;
}
}
int main()
{
while(1)
{
if(flag == 1)
{
printf("count %d\r\n", count);
flag = 0;
count = 0;
}
delay_ms(10);
}
}
实验现象

史海拾趣
|
◎ 丹佛斯变频器能带同步电机吗? 可以。VLT5000,VLT2800的参数101应设为"特殊电机特性",通过设置参数422到432的电压/频率曲线来满足电机调速性能。电机电压 / 频率特性可从电动机生产商处获得或通过经验调整。 ◎ 一台变频器可带多台电 ...… 查看全部问答> |
|
本书从程序设计角度出发,以C/C++为描述语言,以Visual C++为形式工具,将隐藏在代码背后的关于计算机组成原理、计算机操作系统等方面的机制和知识娓娓道来,不仅让读者知其然,更要让读者知其所以然。并让这些知识再反作用于编程实践,从而帮助读 ...… 查看全部问答> |
|
据我的了解,wince的显示驱动在BootLoader和oal都要做,但是我为了让LOGO能够一直显示图像到显示CE桌面,就把OAL层的ResetDisplay给注释掉了,运行效果还是不错,但是偶尔出现现象:CE起来了但是始终见不到桌面,而且还有零星的白条纹!估计是OAL层 ...… 查看全部问答> |
|
-------------------------------------------------------------------------------- 我用的收音机芯片是CL6017S,它的01h制度寄存器的低10位显示的是频率,它的值和04h低10位的值相等,频率单元是10KHz,初始化后的电台频道是0x15E;我的家台程 ...… 查看全部问答> |
|
最近在弄一个简易的计算器,进行一些简单的和科学计算;但是遇到的一个问题就是函数sin()里面的参数是double型的而且是弧度值,返回值也是double型的,我自己做了一个角度转换为弧度的函数,是正常的,一些角度相对比较小的话还是可以的,但是数 ...… 查看全部问答> |
|
CAN设置离线自动恢复,如果短路CANH和CANL,CAN控制器会进入离线状态, 但是好像CAN不能自动恢复,变成能收不能发,程序反应在3个发送mailbox都是满的 不能在进入发送驱动函数,个人认为,是否应该在离线变正常后的自动恢复应该自动 启动发 ...… 查看全部问答> |




