这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » BRUCEG ARM-DIY进程贴(串口控制LED)

共54条 4/6 |‹ 1 2 3 4 5 6 跳转至
专家
2012-04-01 09:34:49     打赏
31楼
自己再扩展一下功能的话更加的完美了!!

菜鸟
2012-04-01 12:23:47     打赏
32楼

左移一位是这样子吗?你说的是右移吧?


菜鸟
2012-04-01 12:37:45     打赏
33楼
恩,试一个这个成果,请问您用的是啥样的烙铁啊?普通烙铁行不?

菜鸟
2012-04-01 13:30:55     打赏
34楼
好吧应该是_cror_ 才对,我打错了。 烙铁其实尖头的也行的,不过需要点技巧,相对来说没那么好焊,但也是可以焊的。

菜鸟
2012-04-01 17:30:05     打赏
35楼
谢谢楼主分享的经验和知识

菜鸟
2012-04-01 18:54:33     打赏
36楼
真不错

工程师
2012-04-04 08:35:44     打赏
37楼
上位机,串口控制十字LED?

菜鸟
2012-04-06 12:08:51     打赏
38楼

 SecureCRT_CN.rar(终端通讯软件,后头有讲)
——————————————————————————————————————————————————————
串口很熟悉了,51中已经非常常见了,用库来做还是非常的容易的,只要简单配置一下就行了
  USART_InitTypeDef   USART_InitStructure;      //定义类型
  USART_StructInit(&USART_InitStructure);        //初始化数据结构
  USART_InitStructure.USART_BaudRate=9600;   //波特率选择(可自行增加修改)
  USART_Init(USART1,&USART_InitStructure);   //配置串口
  USART_Cmd(USART1,ENABLE);                     // 打开串口
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); //接收中断

使用也是很简单
发送如下写即可,(u8) ch 为发送的字符数据
USART_SendData(USART1, (u8) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);  

接收就应该在中断中了,否则这接收会出问题
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)
    {
      USART_ClearITPendingBit(USART1,USART_IT_RXNE);   //清楚中断标志
      Receive_buffer=USART_ReceiveData(USART1);            
   }   
——————————————————————————————————————————————————————
      基本的串口通信就如上所做的,当然要想弄点奇偶校验什么的,也配置上去就好了。说点别的吧。
     学C的时候大家肯定都学到printf 这个输出吧,是不是和爽~!
  printf("很爽有木有,很爽有木有?");
     其实单片机也可以用D,这就要时候的时候用上C输出的这个库,并且把printf 这个函数重定义到我们的串口输出去。
     这里我们要使用上我们亲爱的stdio.h 库。为此要做以下设置,把Use MicroLIB 钩上


然后 main.c 里写上
#include <stdio.h>
#include <stdarg.h>

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif 
PUTCHAR_PROTOTYPE
{
USART_SendData(USART1, (u8) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);  
return ch;


把以上重定义 printf 函数代码打到自己的代码上吧。
printf("Hello,world~!");//  打上经典的一句吧,是不是已经从串口调试助手中出现了???
想打上句中文,貌似有些串口调试助手不支持,这也不够装B 。SO~ 我们需要另外一样工具了“超级终端”。如果你是XP 系统的话,就可以在开始菜单栏里面找到这个东西,设置就自己问度娘吧,其实也就把属性那串口属性设置好就能用了。如果你像我一样是WIN7,噢~ I am sorry,WIN7 把这个工具给阉了。可以找别的中断软件,我这用SecureCRT,上传一个吧~!在顶上呢。(使用方法,自己问谷哥)。
再输入一次,
void LEDUart_Display(u8 LedState)
{
  printf("\r\n\n\n\n\n\r*****************************************************************\n\n\r");
  printf("----------------STM32 ARM-DIY进程(BRUCEG)-----------------");
  printf("\r\n\n\r*****************************************************************\n\n\r");
  printf("\r 1.全循环闪烁\n");
  printf("\r 2.竖循环闪烁\n");
  printf("\r 3.横循环闪烁\n");
  printf("\r 4.竖全亮控开关\n");
  printf("\r 5.横全亮控开关\n"); 
  printf("\r 6.全亮\n");
  printf("\r 7.全灭\n");
  printf("\n\r 0.返回上一层\n");
  printf("\n\n\r");
  printf("\r当前运行状态:%c\n",LedState);
  printf("\r请输入控制序号:");
}
然后终端中看~


界面出来咯。这周忙着,得多等一会再传效果图上来了。


高工
2012-04-06 18:48:46     打赏
39楼
这么弄,你是弄了个显示器啊!

菜鸟
2012-04-08 17:07:26     打赏
40楼
终端软件啊,就PC软件,和串口助手类似,但功能更加强大,没上来发帖两天竟然大家的进度都那么多了,哈哈,我要被追上了

共54条 4/6 |‹ 1 2 3 4 5 6 跳转至

回复

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