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

12
返回列表 发新帖
楼主: 林子的海角

请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

[复制链接]

1

主题

24

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-8-11 22:57:45 | 显示全部楼层

回复:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

回复第 5 楼 于2012-08-08 13:52:13发表:
找个GPIO的程序认真学习下,相信你应该能搞定 

谢谢提醒呢,我会的哈,我会努力的呢。
回复 支持 反对

使用道具 举报

1

主题

24

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-8-11 22:59:39 | 显示全部楼层

回复:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

<div style="border-right: #ccc 1px dashed; padding-right: 5px; border-top: #ccc 1px dashed; padding-left: 5px; padding-bottom: 5px; border-left: #ccc 1px dashed; padding-top: 5px; border-bottom: #ccc 1px dashed">回复第 6 楼 于2012-08-08 14:00:59发表:
同意楼上的方案..
另一种方案是 开一个定时器做计时使用,主循环中查看变量
int timerled = 0;
int ledCount = 1;//1代表灯亮 0代表等灭
int i = 0;
char ledoff = 0;
int timerkey = 0;

while(1)
{
if(!ledoff)
{
ledCount = 1;
for(i = 0;i < 16;i++)
{
GPIOA->ODR = ledCount;
ledCount
回复 支持 反对

使用道具 举报

1

主题

24

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-8-11 23:02:06 | 显示全部楼层

回复:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

回复第 7 楼 于2012-08-08 17:35:39发表:
可以在网上找个流水灯程序学习学习。 

谢谢哈。
回复 支持 反对

使用道具 举报

1

主题

24

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-8-11 23:08:30 | 显示全部楼层

回复:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

回复第 9 楼 于2012-08-09 20:48:20发表:
#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;

void RCC_Configuration(void);
void Delay(__IO uint32_t nCount);
int main(void)
{
//uint16_t a;
/* System Clocks Configuration **********************************************/

RCC_Configuration();

//
/* Configure all unused GPIO port pins in Analog Input mode (floating input
trigger OFF), this will reduce the power consumption and increase the device
immunity against EMI/EMC *************************************************/

/* RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
RCC_APB2Periph_GPIOE, ENABLE);
*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD,ENABLE);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //D1 D2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_13; //D3, D4
GPIO_Init(GPIOD, &GPIO_InitStructure);
while (1)
{


GPIO_SetBits(GPIOC, GPIO_Pin_6);// D1亮
Delay(0xAFFFF);
GPIO_SetBits(GPIOC, GPIO_Pin_7 ); //D2亮
GPIO_ResetBits(GPIOC, GPIO_Pin_6); //D1灭
Delay(0xAFFFF);
GPIO_SetBits(GPIOD, GPIO_Pin_13 ); //D3亮
GPIO_ResetBits(GPIOC, GPIO_Pin_7); //D2灭
Delay(0xAFFFF);
GPIO_SetBits(GPIOD, GPIO_Pin_6 ); //D4亮
GPIO_ResetBits(GPIOD, GPIO_Pin_13); //D3灭
Delay(0xAFFFF);
GPIO_ResetBits(GPIOD, GPIO_Pin_6); //D4灭
}
}

void RCC_Configuration(void)
{
/* Setup the microcontroller system. Initialize the Embedded Flash Interface,
initialize the PLL and update the SystemFrequency variable. */
SystemInit();
}

void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval : None
*/

void assert_failed(uint8_t* file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif 

谢谢哈,真的是非常的谢谢呢。万分的感谢呢。
回复 支持 反对

使用道具 举报

7

主题

78

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-8-13 10:23:30 | 显示全部楼层

RE:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

建议楼主下载stm32 的GPIO例程,结合相关技术文档仔细耐心研究,这样针对性的学习相信会有很大收获

AN2569_STM32F10xxx GPIO应用示例.pdf

下载

178.84 KB, 下载次数: 9

回复 支持 反对

使用道具 举报

0

主题

22

回帖

0

蝴蝶豆

初级会员

最后登录
2020-9-9
发表于 2012-8-13 10:56:36 | 显示全部楼层

RE:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

先看看GPIO,然后看定时器,接着是外中断,建议先接触51单片机,这样上手快。
回复 支持 反对

使用道具 举报

48

主题

209

回帖

0

蝴蝶豆

金牌会员

最后登录
1970-1-1
发表于 2012-8-14 09:19:15 | 显示全部楼层

回复:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

你需要了解 GPIO口的使用及EXTI,看下例程,相信你能搞定!
回复 支持 反对

使用道具 举报

7

主题

62

回帖

0

蝴蝶豆

新手上路

最后登录
2020-6-1
发表于 2012-8-14 17:41:35 | 显示全部楼层

RE:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

#include "stm32f10x.h"
#include "GLCD.h"
#include "USART.h"
void GPIO_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        /* Configure IO connected to LD1, LD2, LD3 and LD4 leds *********************/       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_Init(GPIOD, &GPIO_InitStructure);
           /* Configure USART1 Tx (PA.09) as alternate function push-pull */
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_Init(GPIOA, &GPIO_InitStructure);
   
          /* Configure USART1 Rx (PA.10) as input floating */
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
          GPIO_Init(GPIOA, &GPIO_InitStructure);
}
//系统中断管理
void NVIC_Configuration(void)
{
          /* Configure the NVIC Preemption Priority Bits */  
          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
        #ifdef  VECT_TAB_RAM  
          /* Set the Vector Table base location at 0x20000000 */
          NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
        #else  /* VECT_TAB_FLASH  */
          /* Set the Vector Table base location at 0x08000000 */
          NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
        #endif
}
//配置系统时钟,使能各外设时钟
void RCC_Configuration(void)
{
        SystemInit();       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA
                           |RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC
                           |RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE
                                                   |RCC_APB2Periph_ADC1  | RCC_APB2Periph_AFIO
                           |RCC_APB2Periph_SPI1, ENABLE );
  // RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL ,ENABLE );
     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4
                           |RCC_APB1Periph_USART3|RCC_APB1Periph_TIM2                                  
                           , ENABLE );
         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
}
void InitDis(void)
{
   /* LCD Module init */
   GLCD_init();
   GLCD_clear(White);
   GLCD_setTextColor(Blue);
   GLCD_displayStringLn(Line1, "     GoldBull");
   GLCD_displayStringLn(Line2, "   GPIO example");
   GLCD_setTextColor(Red);
}
//配置所有外设
void Init_All_Periph(void)
{
        RCC_Configuration();       
        InitDis();
//        GLCD_Test();
        GPIO_Configuration();
        NVIC_Configuration();
        USART1_Configuration();
        USART1Write((u8*)"    GoldBull  ADC_example ",sizeof("    GoldBull  GPIO_example "));
}
void Delay(vu32 nCount)
{
  for(; nCount != 0; nCount--);
}
int main(void)
{  
        Init_All_Periph();
        while(1)
          {
                /* Turn on LD1 */
            GPIO_SetBits(GPIOD, GPIO_Pin_2);
            /* Insert delay */
            Delay(0xAFFFF);
            /* Turn on LD2 and LD3 */
            GPIO_SetBits(GPIOD, GPIO_Pin_3 | GPIO_Pin_4);
            /* Turn off LD1 */
            GPIO_ResetBits(GPIOD, GPIO_Pin_2);
            /* Insert delay */
            Delay(0xAFFFF);
            /* Turn on LD4 */
            GPIO_SetBits(GPIOD, GPIO_Pin_7);
            /* Turn off LD2 and LD3 */
            GPIO_ResetBits(GPIOD, GPIO_Pin_4 | GPIO_Pin_3);
            /* Insert delay */
            Delay(0xAFFFF);
            /* Turn off LD4 */
            GPIO_ResetBits(GPIOD, GPIO_Pin_7);       
          }
}
这个很详细了还不会,俺就木有办法了
回复 支持 反对

使用道具 举报

12

主题

49

回帖

0

蝴蝶豆

新手上路

最后登录
2018-3-26
发表于 2012-8-15 15:40:09 | 显示全部楼层

RE:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

楼上的都已经说了  多看看
回复 支持 反对

使用道具 举报

1

主题

24

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-8-15 21:24:59 | 显示全部楼层

回复:请问怎样用STM32做一个流水灯实验程序怎么写?谢谢!【悬赏问答】

回复第 18 楼 于2012-08-14 17:41:35发表:
#include "stm32f10x.h"
#include "GLCD.h"
#include "USART.h"
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

/* Configure IO connected to LD1, LD2, LD3 and LD4 leds *********************/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/* Configure USART1 Tx (PA.09) as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Configure USART1 Rx (PA.10) as input floating */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
//系统中断管理
void NVIC_Configuration(void)
{
/* Configure the NVIC Preemption Priority Bits */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
}
//配置系统时钟,使能各外设时钟
void RCC_Configuration(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA
|RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC
|RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE
|RCC_APB2Periph_ADC1 | RCC_APB2Periph_AFIO
|RCC_APB2Periph_SPI1, ENABLE );
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL ,ENABLE );
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4
|RCC_APB1Periph_USART3|RCC_APB1Periph_TIM2
, ENABLE );
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
}
void InitDis(void)
{
/* LCD Module init */
GLCD_init();
GLCD_clear(White);
GLCD_setTextColor(Blue);
GLCD_displayStringLn(Line1, " GoldBull");
GLCD_displayStringLn(Line2, " GPIO example");
GLCD_setTextColor(Red);
}
//配置所有外设
void Init_All_Periph(void)
{
RCC_Configuration();
InitDis();
// GLCD_Test();
GPIO_Configuration();
NVIC_Configuration();
USART1_Configuration();
USART1Write((u8*)" GoldBull ADC_example ",sizeof(" GoldBull GPIO_example "));
}
void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}
int main(void)
{
Init_All_Periph();
while(1)
{
/* Turn on LD1 */
GPIO_SetBits(GPIOD, GPIO_Pin_2);
/* Insert delay */
Delay(0xAFFFF);
/* Turn on LD2 and LD3 */
GPIO_SetBits(GPIOD, GPIO_Pin_3 | GPIO_Pin_4);
/* Turn off LD1 */
GPIO_ResetBits(GPIOD, GPIO_Pin_2);
/* Insert delay */
Delay(0xAFFFF);
/* Turn on LD4 */
GPIO_SetBits(GPIOD, GPIO_Pin_7);
/* Turn off LD2 and LD3 */
GPIO_ResetBits(GPIOD, GPIO_Pin_4 | GPIO_Pin_3);
/* Insert delay */
Delay(0xAFFFF);
/* Turn off LD4 */
GPIO_ResetBits(GPIOD, GPIO_Pin_7);
}
}
这个很详细了还不会,俺就木有办法了 
谢谢哈  真的很谢谢呢 我会努力学习的呢 谢谢你哈
回复 支持 反对

使用道具 举报

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