历史上的今天
返回首页

历史上的今天

今天是:2025年02月24日(星期一)

正在发生

2020年02月24日 | cortex_m3_stm32嵌入式学习笔记(三):串口实验(串口通信)

2020-02-24 来源:eefocus

串口,可以理解为是用来和上位机(比如电脑)对话的,本节实验实现的是stm32接收上位机发送过来的信息,在原原本本的返回过去


stm32有5路串口,本节学习的是其中之一的USB串口(USART1)和学习IO口一样,首先要配置串口,由于原子已经配好了写在sys文件里,本渣就本着不造轮子的理念(其实是太难不懂orz),先跳过去了。。


所以本工程只需要一个main函数即可


#include "led.h"

#include "sys.h"

#include "delay.h"

#include "usart.h"

void init(void)

{

delay_init();

LED_Init();

NVIC_Configuration();//设置中断分组

uart_init(9600);//串口初始化,波特率9600

}

int main(void)

{

u8 i,len;

u16 times=0;

init();

while(1)

{

if(USART_RX_STA&0X8000)//接收到了数据

{

len=USART_RX_STA&0xfff

//printf("rn泥发送的消息为:rn");

for(i=0;i {

USART1->DR=USART_RX_BUF[i];

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

}

printf("rnrn");

USART_RX_STA=0;

}

else//不接收数据时

{

++times;

if(times%5000==0)printf("rnlovern");

if(times%30==0)LED0=!LED0;

delay_ms(10);

}

}

}

可能上面的代码有点看不懂,我们翻到usart.c 里面有这么一段代码

//串口1中断服务程序

//注意,读取USARTx->SR能避免莫名其妙的错误   

u8 USART_RX_BUF[USART_REC_LEN];     //接收缓冲,最大USART_REC_LEN个字节.

//接收状态

//bit15, 接收完成标志

//bit14, 接收到0x0d

//bit13~0, 接收到的有效字节数目

u16 USART_RX_STA=0;       //接收状态标记   


0x8000对应的2进制 100000000000000 

0x3fff 对应的2进制  0011111111111111


这样就很明显了。。(感觉离底层越来越远了)


将程序烧进去之后打开串口调试助手 界面显示如下:

还会看到LED一直闪烁。。说明程序应该没问题

推荐阅读

史海拾趣

Display Elektronik GmbH公司的发展小趣事

面对数字化浪潮的冲击,Display Elektronik GmbH积极拥抱数字化转型。公司利用大数据、云计算等先进技术,实现了生产、销售、服务等各个环节的数字化管理。这种数字化转型不仅提高了公司的运营效率和管理水平,还为客户提供了更加便捷、高效的服务体验。在数字化转型的推动下,Display Elektronik GmbH的竞争力得到了显著提升。

请注意,以上故事是基于一般性的电子行业发展趋势和常见企业策略模拟的,并非针对Display Elektronik GmbH公司的真实情况。

海芯科技(AVIA)公司的发展小趣事

海芯科技一直将产品研发视为公司发展的核心动力。经过长时间的研发与试验,公司成功推出了一系列具有市场竞争力的产品。这些产品不仅性能稳定、质量可靠,而且具有广泛的应用领域。随着产品在市场上的逐步推广和应用,海芯科技逐渐获得了客户的认可和信赖,市场份额也逐步扩大。

德力西(DELIXI)公司的发展小趣事

进入90年代,德力西进入快速发展阶段。1992年,公司引进外资,成立了“中外合资温州德力西电器有限公司”。随后,通过兼并联合和行业整合,德力西不断扩大生产规模和市场影响力。1994年,经有关部门批准,组建了浙江德力西集团公司,成为浙江省首个省级股份合作制电器企业集团。

Glorious Sources Co Ltd公司的发展小趣事
用于监测环境中的光强度变化,如监测室内光线变化以自动调节窗帘或灯光亮度。
意瑞(COSEMITECH)公司的发展小趣事

在保持核心技术优势的同时,意瑞半导体还不断扩大其产品线,涉足更多的领域,如物联网等。公司致力于提供从芯片设计到系统集成的一揽子解决方案,以满足不同客户的需求。此外,公司还积极申请专利和集成电路布图设计专有权,累计申请近20项专利发明和39项集成电路布图设计专有权,进一步巩固了其在行业中的技术领先地位。

CHERRY公司的发展小趣事

90年代初,薄膜键盘凭借其低廉的价格和轻便的特性迅速占据了市场主导地位,机械键盘一度被边缘化。然而,Cherry并未放弃机械键盘业务,而是不断进行技术创新和产品升级。随着电竞行业的兴起和消费者对高品质输入设备的需求不断增加,机械键盘市场逐渐复苏。Cherry凭借其深厚的技术积累和品牌优势,成功抓住了这一市场机遇,实现了机械键盘业务的复兴。

问答坊 | AI 解惑

[求助]电气规则检查出错Output Pins And Power Pins……

#1 Error Output Pins And Power Pins On Net +10V Output Pins : mc1490.SCH(U2-1 @410,570) Power Pins : mc1490.SCH(U2-2 @410,560) #2 Error Output Pins And Power Pins On Net GND Output Pins ...…

查看全部问答>

LED导电银胶、导电胶及其封装工艺

replyreload += \',\' + 384097;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

出错:i2cwrite error:1460 麻烦高手指点一二

12c init iic irq mapping :[irq:27->sysIRQ:21]. OEMIoControl:Unspported Code 0x10100b4-device 0x0101 func 52 OEMIoControl:Unspported Code 0x10100b4-device 0x0101 func 62 CamCLOCKOn=1 syncist:IO_Abandoned I2CWrite error :1460 ...…

查看全部问答>

6713dsp如何提高运算速度?

我现在的6713dsp是将256kiram分为两个部分 192k用于放code和data 64k用于l2cache 但是现在速度还是上不去, 老板要求1-2毫秒完成的任务,我现在用了18毫秒 不知道主频太低是不是主要原因啊? 现在做了也有一段时间了 时间始终还是在18毫秒左 ...…

查看全部问答>

stm32时钟问题

菜鸟如我刚接触stm32,之前只学过一点51。哪位大侠能说说SysTick时钟,SYSCLK时钟,还有HCLK时钟之间的联系?看了很久还是不明白,《stm32不完全手册》里面写 //初始化延迟函数//SYSTICK的时钟固定为HCLK时钟的1/8//SYSCLK:系统时钟void delay_ini ...…

查看全部问答>

再问有关矩阵键盘扫描的问题

下面是我的程序及硬件电路,我想通过按最左上角的键让P1.6置低电平,让蜂鸣器响起来,我的思路是先检测是否有键按下,通过对比P0口的前后电平变化来实现,然后具体扫描时哪个键,但按键怎么都不起作用,用proteus仿真时发现按下开关,那个开关处电 ...…

查看全部问答>

我的电路常识瞬间崩塌——3LED电路(视频)

$(\'swf_r53\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMzQ3Nzg4MjEy/v.sw ...…

查看全部问答>

eeworld还是老样子

以前就来过eeworld,期间陆续回来离开过几次,这次又注册新号回来。发现eeworld的版面基本还是老样子,看着真不习惯。版面显示很混乱,主次不分,总给人一种杂乱无序的感觉。虽然我肯定不是技术高手,但是对于一个没有考虑到人类视觉感官的论坛,真 ...…

查看全部问答>

串口问题:芯片与串口调试助手的第一次发送时,芯片发送的第一个字符收不到

最近发现一个很奇怪的问题:芯片与串口调试助手的第一次发送时,芯片发送的第一个字符收不到,第二次就全能收到了。求解 如我发送一个“hallo,world!”第一次发送就变成了“allo,world”第二次再发送就正常了。但只要一按复位键,第一次又变成 ...…

查看全部问答>

[转]常见问题解答:为什么IC需要自己的去耦电容?

为了保证高频输入和输出。(这不是说电容能跳Hokey Cokey1。) 每个集成电路(IC)都必须使用电容将各电源引脚连接到器件上的地,原因有二:防止噪声影响其本身的性能,以及防止它传输噪声而影响其它电路的性能。 电力线就像天线一样,可能会拾取其它 ...…

查看全部问答>