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

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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版