OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3538|回复: 5

UASRT发送0x00

[复制链接]

11

主题

95

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2017-3-19
在线时间
116 小时
发表于 2018-1-5 10:27:35 | 显示全部楼层 |阅读模式
50金钱
stm3串口2怎么发送0x00,每次发送的数组碰到0x00,应该被认为是结束符,后面的字节不再发送,求各位大神指点迷津

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=applescript,true]void usart1_Send(u8 len) { tx1_num=0; if(len>1) { tx1_nums=len; USART_SendData(USART1,tx1_dat[0]); USART_ITConfig(USART1,USART_IT_TXE,ENABLE); } else { tx1_nums=1; USART_SendData(USART1,tx1_dat[0]); } } void USART1_IRQHandler(void) { OS_ERR err; OSIntEnter(); if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) //接收中 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2018-1-5 10:27:36 | 显示全部楼层
[mw_shl_code=applescript,true]void usart1_Send(u8 len)
{
        tx1_num=0;
        if(len>1)
        {
                tx1_nums=len;
                USART_SendData(USART1,tx1_dat[0]);
                USART_ITConfig(USART1,USART_IT_TXE,ENABLE);
        }
        else
        {
                tx1_nums=1;
                USART_SendData(USART1,tx1_dat[0]);                
        }
}
void USART1_IRQHandler(void)
{
        OS_ERR        err;
       
        OSIntEnter();
          
        if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)         //接收中断
        {
                USART_ClearITPendingBit(USART1,USART_IT_RXNE);
                rx1_dat[rx1_num]=USART_ReceiveData(USART1);
                rx1_num++;
//                if(rx1_dat[0] != 0xaa)rx1_num = 0;
//                if(rx1_num>=5)
//                {
//                        rx1_num=0;
//                        OSSemPost(&slave_msg_sem,OS_OPT_POST_ALL,&err);
//                }
        }
        if(USART_GetITStatus(USART1,USART_IT_TXE)!=RESET)         //发送数据寄存器空中断
        {                
                tx1_num++;
                if(tx1_num<tx1_nums)
                {
                        USART_SendData(USART1,tx1_dat[tx1_num]);
                }
                else
                {
                        tx1_num=0;
                       
                        USART_ITConfig(USART1,USART_IT_TXE,DISABLE);
                        USART_ITConfig(USART1,USART_IT_TC,ENABLE);
                }
        }
        if(USART_GetITStatus(USART1,USART_IT_TC)!=RESET)
        {
                USART_ClearITPendingBit(USART1,USART_IT_TC);
                USART_ITConfig(USART1,USART_IT_TC,DISABLE);
        }
       
        OSIntExit();                                            /* Tell uC/OS-III that we are leaving the ISR             */
}[/mw_shl_code]
我有故事,你有酒吗
回复

使用道具 举报

0

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
632
金钱
632
注册时间
2016-3-30
在线时间
67 小时
发表于 2018-1-5 10:47:34 | 显示全部楼层
自己写歌函数,发送指定长度的数据就可以呀。是否结束是你说了算
回复

使用道具 举报

13

主题

145

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
金钱
469
注册时间
2015-5-14
在线时间
65 小时
发表于 2018-1-5 18:01:36 | 显示全部楼层
你让发什么就发什么,C语言是非常灵活的。
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-8-5
在线时间
18 小时
发表于 2019-9-20 14:55:44 来自手机 | 显示全部楼层
楼主你解决了嘛
回复

使用道具 举报

11

主题

95

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2017-3-19
在线时间
116 小时
 楼主| 发表于 2019-9-29 14:23:53 | 显示全部楼层

已经解决,之前是因为例程中发送串口函数把形参复制到一个字符串,字符串碰到0x00,认为是字符串结束,后面的数据就没有复制过去。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 11:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表