历史上的今天
返回首页

历史上的今天

今天是:2024年09月29日(星期日)

正在发生

2018年09月29日 | STM32f4---串口通信实验代码(02)

2018-09-29 来源:eefocus

介绍完了这两个函数,我们回到main.c,对于main.c前面引入的头文件为了篇幅考虑,我们后面的实验不再列出,详情请参考我们实验代码即可。主函数代码如下:

int main(void)

{  

  u8 t,len;  u16 times=0;  

       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2  

  delay_init(168);    //延时初始化  

  uart_init(115200);  //串口初始化波特率为115200

  LED_Init();           //初始化与 LED连接的硬件接口   

  LED0=0;              //先点亮红灯

  while(1)

  {

    if(USART_RX_STA&0x8000)

    {              

      len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度

      printf("\r\n您发送的消息为:\r\n");

      for(t=0;t

      {

        USART1->DR=USART_RX_BUF[t];

        while((USART1->SR&0X40)==0);//等待发送结束

      }

      printf("\r\n\r\n");//插入换行

      USART_RX_STA=0;

}else

    {

      times++;

      if(timesP00==0)

      {    printf("\r\nALIENTEK 探索者 STM32F407 开发板 串口实验\r\n");

        printf("正点原子@ALIENTEK\r\n\r\n\r\n");

      }

      if(times 0==0)printf("请输入数据,以回车键结束\r\n");   

      if(times0==0)LED0=!LED0;//闪烁 LED,提示系统正在运行.

      delay_ms(10);    

    }

  }

}

这段代码比较简单,开头部分我们先调用 NVIC_PriorityGroupConfig 函数设置系统的中断优先级分组。然后调用uart_init 函数,设置波特率为 115200。接下来我们重点看下以下两句: 

USART_SendData(USART1, USART_RX_BUF[t]);          //向串口1 发送数据

while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);

第一句,其实就是发送一个字节到串口。第二句呢,就是我们在我们发送一个数据到串口之后,要检测这个数据是否已经被发送完成了。USART_FLAG_TC 是宏定义的数据发送完成标识符。

其他的代码比较简单,我们执行编译之后可以看到,没有任何错误和警告,下面我们可以开始下载验证了。


推荐阅读

史海拾趣

正泰公司的发展小趣事

正泰公司始建于1984年,初期以低压电器业务为主。随着公司业务的不断拓展,正泰逐渐将业务范围扩展至智慧能源系统领域。在这一过程中,公司深入践行“产业化、科技化、国际化、数字化、平台化”战略举措,形成了“绿色能源、智能电气、智慧低碳”三大板块。正泰的低压电器产品长期保持国内领先地位,品牌认知度和客户粘性极强,为公司后续的发展奠定了坚实的基础。

EM Devices Corporation公司的发展小趣事

作为一家有社会责任感的企业,EM Devices Corporation不仅关注自身的经济效益,还积极履行社会责任。公司严格遵守环保法规,采取了一系列环保措施,减少生产过程中的污染排放。此外,公司还积极参与公益事业,为社会做出了积极的贡献。这种可持续发展的理念为公司赢得了广泛的社会赞誉和尊重。

Cembre SPA公司的发展小趣事

随着技术的不断进步,Cembre SPA不断加大对研发的投入,推出了一系列创新产品。其中,公司的电缆接头技术取得了重大突破,不仅提高了接头的可靠性和安全性,还降低了安装和维护的成本。这些技术创新使得Cembre SPA在市场中脱颖而出,成为行业的领导者。

EVERLIGHT公司的发展小趣事

随着全球环保意识的不断提高,EVERLIGHT也积极响应环保号召,致力于研发和生产环保型LED产品。公司采用环保材料和节能技术,不断降低产品的能耗和废弃物排放。同时,公司还积极推广绿色照明理念,为客户提供环保、节能的照明解决方案。这种对环保的关注和实践让EVERLIGHT在电子行业中树立了良好的形象。

Arctic Silicon Devices公司的发展小趣事

面对全球电子市场的竞争压力,Arctic Silicon Devices制定了国际化发展战略。公司积极拓展海外市场,通过设立分支机构、与当地企业合作等方式,将产品和技术推向全球。同时,公司还加大了对国际人才的引进力度,提升了自身的研发实力和市场竞争力。这一战略的成功实施,使Arctic Silicon Devices在全球电子行业中占据了重要地位。

CINTERION公司的发展小趣事

近年来,随着智能电网技术的快速发展,CINTERION凭借其领先的M2M通信技术,在该领域取得了显著突破。其EU3 M2M模块因其卓越的性能和稳定性,荣获了SmartGrid.TMCnet.com颁发的2011年智能电网杰出奖。这一奖项的获得,不仅证明了CINTERION在智能电网技术创新方面的实力,也为公司在该领域的进一步发展奠定了坚实基础。

问答坊 | AI 解惑

这是一个什么三极管?

各位大哥大姐:小弟在一个接收模块上看到一个像TO-92封装三极管的元件。在电路中的作用是在调幅中频信号解调出调制信号。通过测量,它不是一个三极管,而是一个组合元件,请高手说出它的型号及其参数。…

查看全部问答>

串口调试

希望对大家有帮助…

查看全部问答>

MTK6225 手机开发板(含源代码)

MTK6225 手机开发板(含源代码) 有诚意者请联系 Qq:296662705 硬件特性: 1、 CPU:mtk6225 2、 TFLASH 卡接口 3、 176X220 2.6寸TFT LCD,最高支持320*240*16的TFT LCD 4、 4线触摸屏接口 5、 双声道音频输出 6、 一个Camera 130万像素 ...…

查看全部问答>

wince网络实时传输数据

最近遇到一个问题: 环境如下     wince下串口每秒发送15K数据,我的串口读写缓冲区设置4K,全局数据设置为20K 现在有两个解决办法     请大家分析一下那个更好   1.wince socket同步发送 ...…

查看全部问答>

关于GCC对STM32的支持

因需要,必须采用免费软件(非破解)开发STM32,想问问 支持STM32的GCC是否如AVR GCC那样支持windows下使用(非虚拟机)? 有什么易用的IDE?是否能使用STLINK等调试器? GCC是否有什么BUG?…

查看全部问答>

RS485隔离方案

使用带隔离功能的RS485芯片ISO308x系列的隔离参考电路。 …

查看全部问答>

zigbee关联表AssociatedDevList的操作

关联表的操作 AssociatedDevList 表为与此设备相关联的设备表,并不是 ZigBee 网络中的所有设备 信息表。表中信息的 IEEE 地址是唯一的,每个设备加入它的父节点时会在表中添加一个记 录,但是子节点断电离开网络时不会删除该条记录,如果 ...…

查看全部问答>

利用大功率数字源表构建多源测量单元(SMU)系统(连载四):为高电压测试选择最佳电

确保测试期间使用的电缆符合测试系统最大电压额定值。在功率器件关闭状态特性分析期间经常遇到高压、低电流测试,要使用能够实现这类测试所需性能的电缆。 在高压测试时,要保证充分绝缘,并使漏电流和系统电容带来的影响最小化。   适当 ...…

查看全部问答>

求如何存放点阵数据比较靠谱

const char[]定义会占用内存,MSP430G内存本来不多,有什么好的方法可以优化呢.…

查看全部问答>