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

STM32F302R8串口发送字符串

[复制链接]
layl 提问时间:2018-7-1 21:34 /
各位大佬,我写了一个串口发送字符串的程序,但是总是总是发送不出来,找了半天没找到原因,感觉是陷入中断循环了,代码如下:

unsigned char TXBuffer[5]={'a','b','c','d','e'};
unsigned char UART_Flag = 0;
unsigned char DataToBeSent[5];
unsigned char DataPointer=0;

void sendstring(unsigned char *ptr)
{
    unsigned char j=0;
    if(UART_Flag==0)
    {
                          UART_Flag=1;
        for(j=0;j<5;j++)
        {
            DataToBeSent[j] = *ptr++;
        }
      USART2->TDR = DataToBeSent[0];
      DataPointer=1;
    }
}



中断代码:
extern u8 UART_Flag;
extern u8 DataToBeSent[5];
extern u8 DataPointer;

void USART2_IRQHandler (void)
{
        if (USART_GetFlagStatus(USART2,USART_FLAG_TC) ==SET)
        {

                if(UART_Flag == 1)
                {
                        USART2->TDR = DataToBeSent[DataPointer++];
                        if(DataPointer>(5-1))
                        {
                                 UART_Flag = 0;
                        }   
                }
                USART_ClearITPendingBit(USART2,USART_IT_TC);
        }
}

收藏 评论5 发布时间:2018-7-1 21:34

举报

5个回答
toofree 回答时间:2018-7-1 22:55:47
刚开始不要自己写,先跑下样例程序。
从你有限的代码中,看不出问题来

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wudianjun2001 回答时间:2018-7-2 08:34:40
找个例程对照修改比较好

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

layl 回答时间:2018-7-13 09:09:13
toofree 发表于 2018-7-1 22:55
刚开始不要自己写,先跑下样例程序。
从你有限的代码中,看不出问题来

我跑完样例,再参考了别的代码写的,就是看了半天不知道错在哪
layl 回答时间:2018-7-13 09:10:18
wudianjun2001 发表于 2018-7-2 08:34
找个例程对照修改比较好

我没找到stm32f3的发送字符串程序,发送字符没问题,不知道为什么发送字符串就有问题了
cugxiao 回答时间:2018-7-13 09:53:44
发送的时候没有等待发送完毕??你看看例程 发送的时候是不是会有个while循环来等待发送标志位置位

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

官网相关资源

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