这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 我就是我lxw ARM DIY进程帖

共42条 2/5 1 2 3 4 5 跳转至
工程师
2012-03-19 18:51:23     打赏
11楼

前几天有病了,后来又断网了,现在终于又能上网了。从明天起继续更新我的进程。


工程师
2012-03-20 08:32:54     打赏
12楼

工程师
2012-03-20 08:45:50     打赏
13楼

流水灯我想和我一样,第一次看到会有很多不懂的地方,给大家分享一下我是怎么学的。一下内容是根据HXW718059156版主的EEPW ARM DIY手记之软件设计(二)——LED跑马灯实验自己总结出的一点东西。

一、初始化配置

1、GPIO_InitTypeDef     GPIO_InitStructure;//定义GPIO操作及配置结构体 

GPIO_InitStructure为结构体名字

2、使能GPIO时钟,用到RCC_APB2PeriphClockCmd(u32 RCC_AHB2Periph,FunctionalState NewState)其中RCC_AHBPeriph的取值是

FunctionalState NewState的取值是ENABLE,DISABLE

3、设置GPIO_InitStructure.GPIO_Pin

4、设置GPIO_InitStructure.GPIO_Mode

5、设置GPIO_InitStructure.GPIO_Speed

6、设置GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

其中GPIO_TypeDef* GPIOx的取值是GPIOA/GPIOB/GPIOC/GPIOD/GPIOE/

其中GPIO_InitTypeDef* GPIO_InitStruct常用&GPIO_InitStructure对应的上面1、里面定义的结构体名字。我看了几个程序都是定义成GPIO_Init(GPIOA, &GPIO_InitStructure);


 

二、功能实现?(有点疑问是可以用GPIO_SetBitsGPIO_ResetBits来实现吗?)

GPIOE->BRR = led;//点亮相应的LED,即相应的GPIO 输出低电平

GPIOE->BSRR = led;//熄灭相应的LED,即相应的GPIO 输出高电平 

GPIOE->ODR ^= led;//交替使LED相应的GPIO输出高电平或低电平 

三、LED的点亮和熄灭

void LED_Set(Led_TypeDef led,Led_SettingDef set) 

 

 

     if(set==ON) 

          GPIOE->BRR = led;//点亮相应的LED,即相应的GPIO 输出低电平 

 

     else 

 

          GPIOE->BSRR = led;//熄灭相应的LED,即相应的GPIO 输出高电平 

 

}

第一个参数的取值

typedef enum

{

LED1=GPIO_Pin_2,

LED2=GPIO_Pin_3,

LED3=GPIO_Pin_4,

LED4=GPIO_Pin_5,

ALL_LED=(GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5)

} Led_TypeDef;

第二个参数的取值

typedef enum

{

ON=1,//点亮LED操作

OFF=0//熄灭LED操作

}Led_SettingDef;

 


工程师
2012-03-21 09:56:40     打赏
14楼
昨天同学买了一个LED点阵,让我帮忙看怎么接线的,我看了看,是24引脚的,老板却说是单色的,我最后想咱们的MCU-DIY用的是这样的,因为当时我的就买错了,当时也没注意后来没用LED点阵,我买的是16引脚的,后来在网上搜索的结果还有两种不一样,公共端都不一样,最后用万用表得出结论。下面贴出来让大家看看,以后画电路图注意了。

高工
2012-03-21 19:14:59     打赏
15楼
图没贴上。抽空补上吧,否则除了你,我们谁都看不到那些图的。
我是很期待的,学习中。
另外,我也对原图中串口1的接法感到不安。

工程师
2012-03-22 11:36:46     打赏
16楼
就是,感觉基础包也太少了。少的可怜,自己另外还要买好多东西,估计二百块钱根本就不够。基本的都不行,加上jlink更别说什么模块了。估计全部买下来的四五百。俺们都是学生啊。不过知识是无价的。能学到东西了还好,自己再不努力学那就更吃亏了。

工程师
2012-03-22 11:56:39     打赏
17楼
呵呵,图贴好了,我看来看去串口一直都是2和3接的收发数据,但是咱们的PCB上确实3和4。看版主在做实验,不知道版主发现没有。

工程师
2012-03-26 10:37:11     打赏
18楼

1、USART_InitTypeDef USART_InitStructure;

声明一个结构体,名字是USART_InitStructure,结构体原型由USART_InitTypeDef 确定。设置完了USART_InitStructure里面的内容后,在void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)里面调用。定义了 USART_InitStructure以后才能用

USART_InitStructure.USART_BaudRate

USART_InitStructure.USART_WordLength等因为USART_BaudRateUSART_WordLength等,都是USART_InitTypeDef的成员函数只有定义这个结构体USART_InitStructure才能从USART_InitTypeDef中继承过来。才能用USART_InitStructure.USART_BaudRate

USART_InitStructure.USART_WordLength

另外关于同步模式和异步模式的问题

在这里,我们的版主HXW718059156用的是异步模式,所以我们只需要设置前6个。

2、USART_InitStructure.USART_BaudRate = 115200; 是设置波特率为115200

3、USART_InitStructure.USART_WordLength = USART_WordLength_8b;是设置在一个帧中传输或者接收到的数据位数。取值如下

4、USART_InitStructure.USART_StopBits = USART_StopBits_1;定义发送的停止位数目可能的取值是

5、USART_InitStructure.USART_Parity = USART_Parity_No;定义奇偶校验模式,取值为

6、USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None

定义硬件流控制是使能还是失能。

7、USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;设置工作模式,使能或失能发送或接收模式。

USART_Mode_Rx | USART_Mode_Tx;是发送接收都使能。


工程师
2012-03-27 21:53:17     打赏
19楼

有个疑问,我最近看了很多楼主HXW718059156写的教程,看了很多遍串口的程序,现在是看还能看懂,就是还是不知道怎么去写,另外我感觉楼主写的很实用,不过不知道适合初学者不适合,因为我想之前学习51编程序时,刚开始也是所有的函数,所有的功能全都写到一个C文件内,后来,学的多了,就开始模块话编程,把共同的函数都写成一个一个的模块,这样用着真的很方便。现在写STM32的程序时遇到问题了,我看有的教程上是把基本功能都写到main.c内,我知道这样写不方便以后移植用,不过我感觉这样对于像我这样的初学者,如果直接写模块的话,甚至不知道楼主写的这几句该放到哪,那几句该放到哪?不过我知道模块化很方便,可以直接调用,深刻的反应了,C语言方便移植的特点。但是,我还没能学会那种方法,只有一步一步的重新开始,因为都写到一个main.c内可以清楚的看到所有的定义,所有的函数等。请楼主也给点指导。


工程师
2012-03-29 08:30:06     打赏
20楼

朋友们,我的板子到郑州了,马上就到我手里啦、开始动手啦做板子啦,哈哈,估计今天能到。


共42条 2/5 1 2 3 4 5 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]