历史上的今天
今天是:2025年01月29日(星期三)
2019年01月29日 | 通过库函数使用STM32f103串口中断的心得
2019-01-29 来源:eefocus
STM32使用USART中断主要有一下几步:
1,定义中断结构体,和串口结构体
2,使能时钟
3,编写中断函数
4,使能中断
关于发送中断,笔者当时有个疑惑:

上图是关于状态寄存器(USART_SR)中的两位。

上图是控制寄存器1(USART_CR1)中的两位。
笔者当时的疑惑是,这两位都可以控制中断啊,DR数据被移走触发中断,DR数据被移走也会使TC为置一,也会产生中断,这尼玛不冲突了?笔者当时陷入了死循环。
后来笔者想通了,要进入发送中断,用库函数:USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
这个函数时用来打开CR1中的响应位的,比如上一句,是用来打开发送完成中断的,也就是置TXEIE位为1(并且发送缓冲区最初就是空),接下来就会进入中断服务函数。这里并没有打开TCIE位(即并没有使能发送完成中断,所以不会产生冲突)。
当是以查询方式来发送数据时,并没有使能中断也没有使能中断通道,故怎么着也不会产生中断,只用查询SR寄存器就行了。
以上是笔者的一点见解,如有不对的地方请指教。
史海拾趣
|
我学信息管理的,没有任何基础,如何学习PADS画图,学这个之前需要学习什么才行? 我学信息管理的,没有任何基础,如何学习PADS画图,学这个之前需要学习什么才行? [ 本帖最后由 cellular 于 2009-9-28 11:18 编辑 ]… 查看全部问答> |
|
我现在用的是2个AT89S52,通过接通一个AD0809和MAX481以及LCD1602组成一个显示AD转换数据电路。 我现在的问题是,我定时器中断可以进入但是需要加延时,而且串口中断无法进入。 下面是我编写的程序,这个是小弟刚刚写的第一个程序,希望大家别见 ...… 查看全部问答> |
|
我做了一个核心板,上面有LPC2220+39VF16011+IS62WV51216组成,四层板,中间一层电源一层地,原本的要求是希望做到低功耗,可现在光这三个器件在MCU掉电模式下都要耗掉1mA以上电流,所以我一个模块一个模块进行检查,现在检查到FLASH模块是发现电源 ...… 查看全部问答> |
|
这个是基于ISO7816协议的 为什么读卡数据读不出呢? 读卡前已经通过写卡操作了, 读卡中,应答报文始终是16个字节,问下各位数据怎么读,是不是要加偏移量不停的 调用读指令?… 查看全部问答> |
|
这是一个七段数码管显示的程序(共阴极),有些地方不太明白,烦各位说一下 #include #include #include #include #define DIGPORT XBYTE[0x0200] /*定义字位口*/ #define W ...… 查看全部问答> |
|
在电子这个圈子里也混了不少年,各种论坛等等也看过不少,但是我发现这么多年来经常看到的一个低级错误是,国内太多人津津乐道于ucos-II的优秀和开源免费。我想说的是,ucos-II不是免费的,开源!=免费。ucos-II之所以在国内流行,完全是历史原因, ...… 查看全部问答> |
|
在uv2开发环境下开发的程序,编译下载后能正常运行。但之后在uv4开发环下境编译成功,下载就不能正常使用了 ???单片使用的是c8051f430。 急,望大家多多指教,谢谢!… 查看全部问答> |




