历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2019年03月18日 | STM32F103串口通讯注意事项

2019-03-18 来源:eefocus

(1)通过串口不断发送数据


库函数中的


void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);

函数不具备缓存作用,当我们需要连续不断发送一段数据时,我们需要等待前一次数据发送完成,放置数据丢失错误


void usart2_send_char(u8 _char)

{

/* 等待上一次发送完成*/

while( !(USART2->SR & (1 << USART2_SR_TC) )) ;

USART2->DR = _char ;

}

(2)通过中断接受数据


          通过中断中断接受数据时我们可以通过读取数据寄存器中的值使硬件自动清除挂起的接收中断标志位,为了防止其他外设功能的错误,我们应该对每一个中断都养成手动清除中断标志位的习惯。


void USART2_IRQHandler(void)

{     

u8 rec ;

 

    if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) 

{

rec  = USART_ReceiveData(USART2) ;

usart2_send_char(rec) ;

USART_ClearITPendingBit(USART2 , USART_IT_RXNE);

}

               

}

同时,使用串口调试助手时应该注意发送区的\r\n(即换行),因为这个是不可见但是是有效的发送数据。


推荐阅读

史海拾趣

FINISAR公司的发展小趣事

FINISAR公司(前身为Finisar Corporation)成立于1987年(另有资料称成立于1988年),总部位于美国加利福尼亚州的硅谷地区。公司自创立之初便专注于光通信技术的研发与应用,致力于设计、制造和销售高性能的光模块和光网络设备。在成立初期,FINISAR凭借其创新的技术和高质量的产品,在光通信市场上逐渐崭露头角,为后续的快速发展奠定了坚实基础。

Dau Semiconductor Inc公司的发展小趣事

Dau Semiconductor Inc公司成立于XXXX年,由几位在半导体行业拥有多年经验的工程师创立。当时,他们意识到在快速发展的电子行业中,高性能、低功耗的半导体芯片有着巨大的市场需求。于是,他们决定依托自己在半导体设计和制造方面的技术积累,创办Dau Semiconductor Inc公司,专注于研发和生产高性能的半导体芯片。

Active-Semi公司的发展小趣事

Dau Semiconductor Inc公司成立于XXXX年,由几位在半导体行业拥有多年经验的工程师创立。当时,他们意识到在快速发展的电子行业中,高性能、低功耗的半导体芯片有着巨大的市场需求。于是,他们决定依托自己在半导体设计和制造方面的技术积累,创办Dau Semiconductor Inc公司,专注于研发和生产高性能的半导体芯片。

AF International公司的发展小趣事

随着公司业务规模的不断扩大,AF International意识到建立完善的质量管理体系至关重要。公司引进了先进的质量管理理念和方法,建立了严格的质量控制流程,确保从原材料采购到产品生产的每一个环节都符合质量标准。同时,AF International还加强了对员工的培训和教育,提高员工的质量意识和操作技能。这些措施使得公司的产品质量得到了有效保障,赢得了客户的广泛赞誉。

地博电子(DIBO)公司的发展小趣事

2007年,昆山地博光电材料有限公司正式成立,标志着地博电子正式进入电子材料行业。公司创始人凭借对电子材料市场的敏锐洞察和坚定信念,开始了地博电子的创业之旅。起初,公司面临着资金、技术、市场等多方面的挑战,但凭借着不懈的努力和坚持,地博电子逐渐在行业中崭露头角。

Antex公司的发展小趣事

Antex公司始于1917年,当时它主要从事锻件的制造和销售。这一时期的Antex,凭借着对锻造技术的深入研究和不断创新,逐渐在电子行业中崭露头角。公司注重产品质量和客户需求,通过设计、锻造、机械加工、装配的一站式服务,赢得了客户的信赖。

问答坊 | AI 解惑

想转让两个单片机试验箱---51的和MSP430的

手头有两个单片机学习试验箱,一个是周立功的51试验箱, 另一个是利尔达的MSP430F449试验箱, 这两个试验箱基本完整,都配有书 先来看看利尔达的MSP430试验箱,跟现在利尔达网站的一样,现在价格便宜了不少,当初是1750快大洋买的,有感兴趣的可 ...…

查看全部问答>

outlook for wince6.0

请问现在wince6.0中有没有自带的outlook。 如果没有哪里可以找到可以运行在该系统上的outlook?…

查看全部问答>

Windows CE显示问题!

E:\\FLT\\毕业设计\\测试程序\\WinCE5\\新建文件夹\\moto_0228.jpg 请问各位高手,显示重影可能的问题在哪?…

查看全部问答>

EVC 移植到 vs2005上的问题

CE5 换成了.CE6.EVC下写的程序用不了!只能换成VS了. 移值过去后,编译成功,在模拟器下也能运行! 把在放到设备上,点它没反应! 用同样的SDK从0写个程序上去就可以运行! 这是为什么呢?有什么好的办法不用从0开始写.直接让移值过来的程序直接运行 ...…

查看全部问答>

如何把hex直接下載到芯片上

我有一個hex檔 沒有源程式  我想把它下載到單片機上 (c51rf-s3100) 在keilc51上應該怎樣操作呢  或者能用其他方式燒到板上呢? 請各位大大指教一下~ 剛從零開始學單片機的小生~…

查看全部问答>

WinCE里要屏蔽掉开始菜单中的运行,我的文档,程序等选项该怎么做?有知道的吗?

WinCE里要屏蔽掉开始菜单中的运行,我的文档,程序等选项该怎么做?有知道的吗?…

查看全部问答>

pic16f87x单片机与电脑通讯

请问pic16f87x单片机与电脑通讯,pc一端程序怎么写呀?…

查看全部问答>

VHDL多条件Wait语句

请问各位大虾,wait on tx_clk_rec until tx_clk_rec = \'1\' and iq_tx_enable_rec = \'1\'这条语句是什么意思呢? 我的程序中是,wait on tx_clk_rec until tx_clk_rec = \'1\' and iq_tx_enable_rec = \'1\'这条语句后面的语句是等待2ns之后给i ...…

查看全部问答>

甩卖2410开发板,8寸TFT触摸屏

转个2410开发板,8寸的大屏,带触摸!,笔记本才17寸。分辨率达到800*600 就卖个屏的价,450卖掉。…

查看全部问答>

中断注册函数已定义但未被使用

最近在做一个2440的nrf2401驱动程序,里面要用到中断,所以我弄了个中断服务程序和一个中断注册函数,但是在编译的时候出现了下面这个warming: drivers/char/s3c2440_nrf24l01.c: At top level: drivers/char/s3c2440_nrf24l01.c:131: warning: ...…

查看全部问答>