碰到的几个问题及解决方法

1、要使能串口接收中断除了调用BSP_IntEN()外,还应该调用USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);,否则无法进入中断。

2、如果中断服务程序在另一个文件里,且在中断服务程序里发送邮箱消息的话,需要将存放消息的变量定义成全局变量。

3、初始化某一外设时,如果没有对初始化用的结构体的每一个成员均赋值(尽管主观上认为是该成员的配置与自己的应用无关),有可能出错。因为未初始化的变量在内存中的值是不确定的。一个例子是,在利用官方提供的STM32F2系列的1.0库时,官方的ADC3_DMA例程并没有对ADC初始化的结构体的每一个成员进行赋值,导致当把LCD显示注释掉后,尽管初始化时让ADC转换值右对齐,但实际上始终是左对齐。通过观察发现,其没有对ADC_ExternalTrigConv成员初始化,以致于其值不确定,从而导致初始化成了左对齐而不是右对齐。

4、多任务调度后用printf打印浮点型数据有时无法正常打印,具体原因不明。初步猜测是因为浮点型数据的存储采用了专门的寄存器,操作系统没有对该寄存器进行保存。

永不止步步 发表于07-25 14:52 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号