这几天调串口遇到的问题

1.指纹采集那个模块,需要用到MAX232,我用51板子的MAX232,遇到回来的数据是乱码,后来发现是线没接对,并联接着PL2303了,导致TXD和RXD短路,在开发板断电的情况下也能收到数据,断断续续耽误了两天,到处怀疑问题,下次要是用开发板的是奇偶先检查电路,测测引脚是不是像你想象的那样连接。

2.STM32的串口1和串口2的时钟RCC设置函数“RCC_APB1PeriphClockCmd()”是不同的,用的时候注意。

3.“RCC_APB2Periph_AFIO”这个是复用IO时钟,我发现当我要用到2个中断的时候,必须加上这个,不加上的话只能用一个中断。

 

4.由于外部中断EXTI5——EXTI9公用了一个中断(EXTI10——EXTI15类似)所以要区分不同的中断源需要进行相应的判断。在EXTI9_5_IRQHandler中,需要写函数来判断中断的来源。

 

第一个帖子,先这样了,以后多整理。别犯相同的错误了。都是比较幼稚的问题,呵呵。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在STM32串口通信实验中,可能会遇到以下问题: 1. 无法发送或接收数据 如果无法发送或接收数据,可能是因为串口参数配置不正确或者硬件连接有误。需要确认以下几点: - 确认串口参数配置正确,包括波特率、数据位、停止位、奇偶校验等参数 - 确认串口的时钟已经使能 - 确认串口的硬件连接正确,包括串口接口、连接线和外部设备等 2. 数据传输不稳定或出现乱码 如果数据传输不稳定或出现乱码,可能是因为串口传输速率不匹配或者中断服务函数执行时间过长导致的。需要确认以下几点: - 确认串口传输速率匹配,包括外部设备的传输速率和程序中的串口参数配置 - 确认中断服务函数执行时间尽可能短,避免长时间占用CPU资源导致数据传输不稳定或出现乱码 解决方法: 在使用STM32串口通信时,可以采用以下步骤进行配置和编程: 1. 配置串口参数 使用USART_Init函数对串口进行配置,设置相应的波特率、数据位、停止位、奇偶校验等参数。 2. 编写中断服务函数 根据需要编写中断服务函数,并在函数中进行相应的处理。需要注意的是,中断服务函数应该尽可能的简单,避免长时间占用CPU资源,否则可能会影响其他重要任务的执行。 3. 开启串口中断 在程序中开启串口中断,使得程序能够响应串口数据传输事件。 4. 烧录程序 将程序烧录到STM32芯片中,通过串口发送和接收数据,观察数据传输情况和中断服务函数的执行情况。 需要注意的是,在编写程序时需要遵循一些规范和最佳实践,如使用宏定义等方法来定义常量和变量,避免使用硬编码方式;使用防抖和消抖技术来避免串口信号引起的误触发等。同时,建议使用示波器等工具来观察数据传输情况和中断服务函数的执行情况,以便进行试和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值