STM32
直播中

王敏

7年用户 1453经验值
私信 关注
[问答]

STM8L051串口映射到PC5/PC6接收不进中断的原因?

卡在这里好几个晚上了。。。程序配置应该没问题,因为TX口发出的数据很正常。示波器看了RX口,有波形,但程序死活不进串口中断。在论坛看到有类似的问题,说的是STM8S103,串口映射到PD5/PD6,正好也是AD通道,于是在程序要把AD的施密特触发器打开,坑。。。那我看了下我的片子,PC5/PC6同时也是SPI和tiM2的复用口。可是我试了几个操作,还是不行啊。求大神指点一二

回帖(1)

程成

2024-5-8 17:09:59
根据您提供的信息,您在使用STM8L051时遇到了串口接收中断的问题。以下是一些建议和可能的原因:

1. 确保您的硬件连接正确。检查PC5和PC6引脚是否正确连接到您的开发板和目标设备。

2. 检查您的程序配置。确保您已经正确配置了串口接收中断的优先级和中断使能。在STM8L051中,您需要设置ITC_SPRx寄存器以配置串口中断优先级,以及设置CR2寄存器中的TIEN和RIEN位以启用发送和接收中断。

3. 检查您的中断服务例程。确保您的串口接收中断服务例程(如USART1_RX_IRQHandler)已经正确实现,并且在该例程中正确地处理了接收到的数据。

4. 检查您的时钟配置。确保您的系统时钟配置正确,以便为串口提供足够的时钟频率。

5. 检查您的串口初始化设置。确保您已经正确设置了串口的波特率、数据位、停止位和奇偶校验位。

6. 检查您的GPIO配置。确保PC5和PC6引脚已经配置为串口功能,而不是其他复用功能(如SPI或TIM2)。

7. 如果您的设备支持,尝试使用STM8L Discovery或STM8L-Discovery Kit开发板进行测试。这可以帮助您排除硬件问题。

8. 如果问题仍然存在,您可以尝试使用STM8L的JTAG/SWIM调试器进行调试,以便更详细地了解程序的执行情况。

9. 您提到了STM8S103的问题,虽然STM8L051和STM8S103是不同的系列,但它们之间可能存在一些相似的问题。您可以尝试在STM8L051中打开AD的施密特触发器,看看是否有所改善。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分