打印
[CW32L083系列]

IO设置为输出点亮LED灯, 没有操作时 LED灯 一亮一灭

[复制链接]
621|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lcc139|  楼主 | 2024-8-26 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IO设置为输出点亮LED灯, 没有操作时 LED灯 一亮一灭 怎么回事

使用特权

评论回复
沙发
szt1993| | 2024-8-26 16:45 | 只看该作者
是不是没有延时或者程序其他地方有问题

使用特权

评论回复
板凳
xch| | 2024-8-26 18:49 | 只看该作者
看门狗复位了吧

使用特权

评论回复
地板
mbutterfly| | 2024-8-27 08:12 | 只看该作者
要不就是定时器里做了。我自己定时器里做过,忘了。哈哈。

使用特权

评论回复
5
xionghaoyun| | 2024-8-27 08:30 | 只看该作者
单片机复位了 是不是没有喂狗

使用特权

评论回复
6
lcc139|  楼主 | 2024-8-27 11:54 | 只看该作者
我选用的是厂家给的例程如下, 单步仿真时,B9给高电平, LED灯闪亮(应该常亮),B9给低电平 LED灯灭。
#include "main.h"
#include "cw32l083_gpio.h"
#define LED_GPIO_PORT CW_GPIOB
//#define LED_GPIO_PINS GPIO_PIN_8 | GPIO_PIN_9
#define LED_GPIO_PINS GPIO_PIN_9

#define KEY_GPIO_PORT CW_GPIOA
#define KEY_GPIO_PINS GPIO_PIN_1 | GPIO_PIN_2

    GPIO_InitTypeDef GPIO_InitStruct;       //定义一个IO口变量

int32_t main(void)

{
                char i,j;

    //GPIO_InitTypeDef GPIO_InitStruct;
    __RCC_GPIOA_CLK_ENABLE();                             // 使能GPIO的配置时钟
    __RCC_GPIOB_CLK_ENABLE();
                GPIO_InitStruct.IT = GPIO_IT_RISING | GPIO_IT_FALLING;//上升下降
                GPIO_InitStruct.Mode = GPIO_MODE_INPUT;               //定义为输入     
    GPIO_InitStruct.Pins = KEY_GPIO_PINS;                                                                        //A2定义为按键
                GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;                                                          //定义为高速
    //GPIO_Init(KEY_GPIO_PORT, &GPIO_InitStruct);                                                //初始化A2按键
                GPIO_InitStruct.IT = GPIO_IT_NONE;                                                                                //缺省
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;                                                //定义为推挽输出  
   //GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;                                                //定义为推挽输出         
    GPIO_InitStruct.Pins = LED_GPIO_PINS;                                                                        //A8,A9定义为LED灯
    GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);                                                //初始化LED灯
       
       
   
    GPIOA_INTFLAG_CLR(bv1 | bv2);                        //清除PA00中断标志并使能NVIC
    //NVIC_EnableIRQ(GPIOA_IRQn);                                //使能
    //----------------------------------------------------------------------
    //相关程序在中断服务GPIOA_IRQHandler中进行处理
       
        while(1)
        {
                for(i=0;i<3;i++)
               
                PB09_SETHIGH();
                //REGBITS_CLR( CW_GPIOB->ODR , LED_GPIO_PINS);
                //GPIO_TogglePin(CW_GPIOB,LED_GPIO_PINS);
               
                for(j=0;j<3;j++);
                //REGBITS_SET( CW_GPIOB->ODR , LED_GPIO_PINS);
                PB09_SETLOW();
               
        }
}

使用特权

评论回复
7
Chad1989| | 2024-8-27 14:02 | 只看该作者
这程序写的我泪目

使用特权

评论回复
8
pssyx| | 2024-8-27 14:21 | 只看该作者
lcc139 发表于 2024-8-27 11:54
我选用的是厂家给的例程如下, 单步仿真时,B9给高电平, LED灯闪亮(应该常亮),B9给低电平 LED灯灭。
#i ...

“没有操作时”,是什么概念?
CW32L083的默认HCLK是8MHz,for(i=0;i<3;i++) PB09_SETHIGH();以及for(j=0;j<3;j++);PB09_SETLOW();延时时间太短啦!
建议参考下标准库中CW32L083_StandardPeripheralLib_Vx.x\Examples\GPIO\gpio_blink目录下代码。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝