OpenEdv-开源电子网

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

大家帮忙看一下,这个函数的表达方式有没有问题,如果有问题的话,希望指导下

[复制链接]

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
发表于 2018-7-26 14:37:17 | 显示全部楼层 |阅读模式
1金钱
void UartSendData_binging(u8 *buf1,int len)
{
        u8 i;
        len=USART_RX_STA&0x3f;
for(i = 0;i<len;i++)
{
    USART_SendData(USART1,buf1[i]);
}
}

void process(void)
{
          u8 key;
          u8 len;
                 key =KEY_Scan(0);
                 if(key)
                   {
                        switch(key)
                   {
                case WKUP_PRES:
                                                                               
                   UartSendData_binging(buf1,len);
                        break;
                    case KEY2_PRES:
                                                                                       
                    UartSendData_elec(bufpower,len);
                        break;

                               
                                }
                                }

}


最佳答案

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

类似于这样就可以: [mw_shl_code=c,true]void USART1_SendString(const char * str) { u8 len,i; len=strlen(str); for(i=0;i
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-7-26 14:37:18 | 显示全部楼层
支持者2400 发表于 2018-7-27 08:44
void UartSendData_elec(u8 *bufpower,int len)
{
        u8 i;

类似于这样就可以:
[mw_shl_code=c,true]void USART1_SendString(const char * str)
{
        u8 len,i;
        len=strlen(str);
        for(i=0;i<len;i++)
        {
                USART1_SendData(*(str+i));
        }
}
[/mw_shl_code]
注意需要include "string.h"
把代码中的USART1_SendData()函数换成你的函数即可。
十六进制带我飞。
回复

使用道具 举报

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2018-7-26 14:46:52 | 显示全部楼层
没看出什么问题.就是 不知道你在main 里面怎么用的. 以及有没有初始化
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-7-26 14:51:50 | 显示全部楼层
森海有眼泉 发表于 2018-7-26 14:46
没看出什么问题.就是 不知道你在main 里面怎么用的. 以及有没有初始化

int main(void)
{       
    u8 i,t;
         unsigned char data;
    u8 len;
    u16 times=0;
    u8 RxData;
    unsigned char flag_sign=0;
       
   delay_init();
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
   uart_init(115200);
   LED_Init();
   KEY_Init();
while(1)
{
process();
}
}在main里面是这样用的,但是运行之后没效果啊
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-7-26 14:59:11 | 显示全部楼层
void process(void)里面的“len”,你有赋值?
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-7-26 15:05:00 | 显示全部楼层
a3748622 发表于 2018-7-26 14:59
void process(void)里面的“len”,你有赋值?

len这里没用到
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-7-26 16:42:21 | 显示全部楼层
buf1你赋值了没
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-7-26 16:48:04 | 显示全部楼层
看的我...
我觉得是有问题.
回复

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-7-26 18:31:41 | 显示全部楼层
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-7-26 20:51:53 | 显示全部楼层
求函数:
UartSendData_elec();
的函数原型。
len你用到了,就是在上面两个函数中,如果len为0的话,根据你提供的函数实现,WKUP_PRES键按下时不会有任何效果。

另外发代码时注意使用论坛提供的“插入代码”功能,在编辑框上呈“<>”这个图标,不然代码一没有格式化二又乱看起来实在头疼。
十六进制带我飞。
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-7-27 08:42:53 | 显示全部楼层

这个复制了,谢谢回复
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-7-27 08:44:55 | 显示全部楼层
本帖最后由 支持者2400 于 2018-7-27 08:47 编辑
DreamWaterPro 发表于 2018-7-26 20:51
求函数:
UartSendData_elec();
的函数原型。

void UartSendData_elec(u8 *bufpower,int len)
{
        u8 i;
        len=USART_RX_STA&0x3f;
for(i = 0;i<len;i++)
{
    USART_SendData(USART1,bufpower);
}
}
谢谢您的回复,经过我测试,这个函数是可用的,但是USART_SendData(USART1,bufpower);只能发送单个字符,不能发送字符串,我想通过串口向另一个通信模块发送一串字符,这个应该如何实现呢
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-7-27 08:47:40 | 显示全部楼层
qiuzhicheng 发表于 2018-7-26 16:48
看的我...
我觉得是有问题.

大神,求指导
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2018-7-27 10:36:11 | 显示全部楼层
DreamWaterPro 发表于 2018-7-27 08:58
类似于这样就可以:
[mw_shl_code=c,true]void USART1_SendString(const char * str)
{

谢谢大神,这样可以直接向串口调试助手里发数据吗
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-7-27 17:49:08 | 显示全部楼层
可以的,只要是通过串口发送,连接到电脑之后在串口助手里面设置好端口、波特率等参数就可以在串口助手中看到数据
十六进制带我飞。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 22:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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