你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm8l051F3串口接收中断方式接收数据复位

[复制链接]
momobo 提问时间:2016-10-18 16:32 /
stm8l051F3,串口接收采用中断方式,下发一个字节直接复位
debug下直接出现仿真器断线,如下:

串口发送采用查询方式,向PC发数据没有问题。
USART初始化代码如下:
void uart_init(void)
{
    CLK_PeripheralClockConfig(UART_CLK, ENABLE);  
    GPIO_Init(UART_GPIOx, UART_PIN_TX, GPIO_Mode_Out_PP_High_Slow);//TXD
    GPIO_Init(UART_GPIOx, UART_PIN_RX, GPIO_Mode_In_PU_No_IT);//RXD
    GPIO_ExternalPullUpConfig(UART_GPIOx, UART_PIN_TX, ENABLE);   
    GPIO_ExternalPullUpConfig(UART_GPIOx, UART_PIN_RX, ENABLE);
    USART_DeInit(UART_DEVICE);
    USART_Init(UART_DEVICE, (u32)BAUD_RATE, USART_WordLength_8b, USART_StopBits_1,
            USART_Parity_No, USART_Mode_Tx|USART_Mode_Rx);
    USART_ClearITPendingBit(UART_DEVICE, USART_IT_RXNE);
    USART_ITConfig(UART_DEVICE, USART_IT_RXNE, ENABLE);
    USART_Cmd(UART_DEVICE, ENABLE);
}
中断处理函数:
INTERRUPT_HANDLER(USART1_RX_IRQHandler, 28)
{
    u8 ch;
    ch = USART_ReceiveData8(UART_DEVICE);   
    USART_SendData8(UART_DEVICE, ch);
}
现在不清楚哪里出了问题,初步怀疑中断配置,或栈空间分配问题,但是看了许多资料和修改了关于中断和栈的配置问题依然没有解决。
请坛子里的大神指条出路,谢了
收藏 1 评论6 发布时间:2016-10-18 16:32

举报

6个回答
momobo 回答时间:2016-10-19 13:30:14
手头刚好有一块STM8L152的discovery板子,把工程移植到该板子上,做了简单的时钟和GPIO的适配跑起来后,uart收发没有问题。
xmshao 回答时间:2016-10-20 17:30:36
你中断里没有清除中断请求位,会导致类似死机现象。

asssdz-382474 回答时间:2016-10-20 20:58:57
:)
lulugl 回答时间:2016-10-21 09:55:46
检查一下硬件的问题吧。
asmhai 回答时间:2016-11-15 01:34:18
签到,好多行,看看回复,谢谢!
有一个地方 回答时间:2019-8-20 17:40:46
stm8l051F3串口接收中断方式接收数据复位 ,可以参考你的代码一下吗,我的一直有问题

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版