OpenEdv-开源电子网

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

捞捞我啊,求解,求解,求解

[复制链接]

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
发表于 2022-3-18 19:39:23 | 显示全部楼层 |阅读模式
初学者:只是改变了主函数里面的一些东西,是哪个初始化没打开吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

141

帖子

0

精华

高级会员

Rank: 4

积分
679
金钱
679
注册时间
2020-11-21
在线时间
67 小时
发表于 2022-3-21 10:33:11 | 显示全部楼层
先把C语言学好,然后看视频教程,按照教程一步一步练。
回复 支持 反对

使用道具 举报

3

主题

805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3833
金钱
3833
注册时间
2017-3-7
在线时间
1672 小时
发表于 2022-3-21 10:34:53 | 显示全部楼层
什么问题,不描述下,人家怎么帮你
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
 楼主| 发表于 2022-3-21 22:41:15 | 显示全部楼层
哈哈哈哈,我第一次发帖子,不太熟练,等我把代码奉上。没想到真的有人回复我,十分感谢!帮我看一下哈!
IO口什么的都配置正确,现在问题是,电脑也能收到串口返回的字符串,但是板子不能执行我的指令,等不会亮啊!拜托了
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
 楼主| 发表于 2022-3-21 22:41:44 | 显示全部楼层
int main(void)
{
        u16 times=0;
        u8 t;
        u8 len;       
        delay_init();                     //Ñóê±oˉêy3õê¼»ˉ       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// éèÖÃÖD¶ÏóÅÏ輶·Ö×é2
        uart_init(9600);         //′®¿ú3õê¼»ˉÎa9600
        LED_Init();                //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
        while(1)
        {
                if(USART_RX_STA&0x8000)//½óêÕμ½DÅÏ¢ê±
                {       
                        len=USART_RX_STA&0x3fff;//μÃμ½′Ë′νóêÕμ½μÄêy¾Y3¤¶è
                        printf("\r\nÄú·¢ËíμÄÏûÏ¢Îa:\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART1->DR=USART_RX_BUF[t];
                                while((USART1->SR&0X40)==0);//μè′y·¢&#203;í&#189;áê&#248;
                        }
                        if(len>1)
                                printf("\r\n&#214;&#184;á&#238;′í&#206;ó\r\n");
                        if((USART_RX_STA&0x3fff)==2)
                        {
                                switch(USART_RX_BUF[1])
                                {
                                        case '1':
                                                GPIO_ResetBits(GPIOA,GPIO_Pin_8);
                                                break;
                                        case '2':
                                                GPIO_SetBits(GPIOA,GPIO_Pin_8);
                                                break;
                                        case '3':
                                                GPIO_ResetBits(GPIOD,GPIO_Pin_2);
                                                break;
                                        case '4':
                                                GPIO_SetBits(GPIOD,GPIO_Pin_2);
                                                break;
                                        default:
                                                printf("\r\n&#214;&#184;á&#238;′í&#206;ó£&#161;\r\n");
                                                break;
                                }
                        }
                        printf("\r\n\r\n");//2&#229;è&#235;&#187;&#187;DD
                        USART_RX_STA=0;//&#199;&#229;á&#227;·&#189;±&#227;&#207;&#194;′&#206;&#189;óê&#213;
                }else//&#206;′&#189;óê&#213;μ&#189;D&#197;&#207;¢ê±
                {
                        times++;
                        if(times%200==0)
                        {
                                printf("ê&#228;è&#235;1---&#191;aLED0      ê&#228;è&#235;2---1&#216;LED0  \r\n");
                                printf("ê&#228;è&#235;3---&#191;aLED1      ê&#228;è&#235;4---1&#216;LED1  \r\n");
                                printf("&#199;&#235;ê&#228;è&#235;&#214;&#184;á&#238;°′&#187;&#216;3μ&#188;ü&#214;′DD \r\n");
                        }
                        delay_ms(10);   
                }
        }         
}
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
 楼主| 发表于 2022-3-21 22:42:41 | 显示全部楼层
511386807 发表于 2022-3-21 10:33
先把C语言学好,然后看视频教程,按照教程一步一步练。

谢谢啊好心人,嘻嘻
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
 楼主| 发表于 2022-3-21 22:43:25 | 显示全部楼层
a5820736 发表于 2022-3-21 10:34
什么问题,不描述下,人家怎么帮你

谢谢啊,劳烦看一下,代码
嘻嘻嘻
回复 支持 反对

使用道具 举报

28

主题

360

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1028
金钱
1028
注册时间
2021-2-4
在线时间
146 小时
发表于 2022-3-25 14:42:35 | 显示全部楼层
错过了晚安 发表于 2022-3-21 22:43
谢谢啊,劳烦看一下,代码
嘻嘻嘻

你得说一下什么问题啊
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
 楼主| 发表于 2022-3-26 00:59:15 | 显示全部楼层
电子控2021 发表于 2022-3-25 14:42
你得说一下什么问题啊

问题解决了,但是有下一个问题
下一层:
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
 楼主| 发表于 2022-3-26 00:59:40 | 显示全部楼层
问题:为了让它以跑马灯形式亮,我得加个死循环吧,但是加了之后,我再按其他按键,它就跳不出来了,十分头疼
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"

int main(void)
{      
        u8 t=0;         //给mode赋值
        delay_init();                     //延时函数初始化         
        LED_Init();                                   //初始化与LED连接的硬件接口
        KEY_Init();                  //初始化与按键连接的硬件接口
        while(1)
        {
                t=KEY_Scan(0);                //mode得到键值
                if(t==KEY0_PRES)
                {
                        for(;;)
                        {                              
                                GPIO_ResetBits(GPIOA,GPIO_Pin_8); //LED0输出低
                                GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1输出高
                                delay_ms(300);
                                GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0输出高
                                GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1输出低
                                delay_ms(300);
                        }
                }
                if(t==KEY1_PRES)
                {
                        for(;;)
                        {                              
                                GPIO_ResetBits(GPIOA,GPIO_Pin_8); //LED0输出低
                                GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1输出高
                                delay_ms(300);
                                GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0输出高
                                GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1输出低
                                delay_ms(300);
                        }
                }
                if(t==WKUP_PRES)
                {
                        GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1输出高
                        GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0输出高
                }
                else
                        delay_ms(10);      
        }                 
}


回复 支持 反对

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12995
金钱
12995
注册时间
2012-11-26
在线时间
3790 小时
发表于 2022-3-26 09:48:12 | 显示全部楼层
你在循环里加个标志位,标志位有效就跳出循环啊,你死循环肯定出不来啊
学无止境
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2022-2-26
在线时间
15 小时
 楼主| 发表于 2022-3-26 17:00:06 | 显示全部楼层
while(flag1)
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 21:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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