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请输入控制序号:");
}
然后终端中看~
界面出来咯。这周忙着,得多等一会再传效果图上来了。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |