在上一个例程USB转TTL串口(printf)的基础上进行修改。主要修改了以下几点内容:
1.由于不要使用printf了,所以把PUTCHAR_PROTOTYPE的定义部分去掉。
2.从官网例程中找到串口收发数据的代码,并融合到新定义的串口收、发数据的函数中。
例程中串口发数据的代码(已进行细微改动):
/* Send one byte from USARTy to USARTz */
USART_SendData(USART1, data);
/* Loop until USARTy DR register is empty */
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
{
}
例程中串口收数据的代码(已进行细微改动):
/* Loop until the USARTz Receive Data Register is not empty */
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
{
}
/* Store the received byte in RxBuffer */
ReceiveData = (USART_ReceiveData(USART1) & 0x7F);
新定义的串口发数据的函数:
void USART1_Send(uint16_t data)
{
/* Send one byte from USARTy to USARTz */
USART_SendData(USART1, data);
/* Loop until USARTy DR register is empty */
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
{
}
}
新定义的串口收数据的函数:
uint8_t USART1_Receive(void)
{
uint8_t ReceiveData;
/* Loop until the USARTz Receive Data Register is not empty */
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
{
}
/* Store the received byte in RxBuffer */
ReceiveData = (USART_ReceiveData(USART1) & 0x7F);
return ReceiveData;
}
3.在主函数中先写一条接收数据的函数,接着将收到数据通过串口发回电脑。
SerialBuf = USART1_Receive();
USART1_Send(SerialBuf);
Delay(90000);
可以看出:1.本程序使用的是查询的方式,MCU的利用率低,今后还将学习中断的方式进行数据的接收。2.本程序收发的是一个字节的数据,今后还将学习收发一连串的数据。
上一篇:stm32使用两路串口及接收不定长数据的实现
下一篇:STM32之串口的使用
推荐阅读
史海拾趣
面对日益激烈的市场竞争,Apx-Crystal公司意识到单凭自身的力量难以保持长期的竞争优势。于是,公司积极寻求与行业内外的合作伙伴进行技术交流和合作研发。通过与知名高校、科研机构以及同行的紧密合作,Apx-Crystal成功开发出了一系列具有创新性和领先性的电子产品,进一步巩固了其在行业内的领先地位。同时,公司还加大了对产业链的整合力度,推动了产业升级和可持续发展。
随着产品质量的不断提升和市场需求的扩大,AFOP开始积极拓展国内外市场。公司通过与各大电信运营商、设备制造商等建立合作关系,将产品应用于长途通信、大都会网络以及最后一里接入等领域。同时,AFOP还积极参与国际光纤通信展览会等活动,加强与国际同行的交流与合作,提升了公司在国际市场的知名度。
为了加速全球化进程,HBH-Microwave积极寻求与国际知名企业的合作。通过技术交流和联合研发,HBH与多家跨国公司建立了长期稳定的合作关系。这些合作不仅为公司带来了先进的技术和管理经验,也帮助HBH的产品成功打入国际市场,实现了销售额的快速增长。同时,HBH还通过参加国际展会和研讨会,不断提升品牌知名度和行业影响力。
进入20世纪70年代中期,Burr-Brown敏锐地意识到数字技术将对音频行业产生深远影响。公司迅速抓住CD播放机市场的机遇,通过技术创新,成功引领音频行业进入数字时代。这一转型不仅巩固了Burr-Brown在音频领域的领先地位,也为公司带来了更广阔的发展空间。
在快速发展的过程中,CTC Coils Ltd公司始终注重企业文化建设和团队建设。公司倡导创新、务实、高效的企业精神,鼓励员工勇于创新、追求卓越。同时,公司还注重员工的培训和成长,为员工提供广阔的发展空间和良好的职业晋升通道。这些举措使得公司凝聚力不断增强,为公司的长远发展奠定了坚实的基础。
请注意,这些故事是虚构的,旨在展示一个电子行业公司可能经历的发展路径和关键阶段。实际情况可能因公司具体情况和市场环境的不同而有所差异。
在市场竞争日益激烈的情况下,品牌形象的塑造对于企业的发展至关重要。1992年,公司名称变更为COSEL株式会社,这一变革不仅提升了公司的品牌形象,也展示了公司向更高目标迈进的决心。同时,公司还导入了V.I(视觉整合),通过统一的视觉形象传达公司的品牌理念和价值观。这些举措使得Cosel公司在客户心中留下了深刻的印象。
vhdl 刚入门,看了不少写状态机的例子,但都是经典的两段式,不过听说最好的状态机描述方式是三段式,上网搜了半天都是verilog的三段式状态机,不是很懂。 比如下面的例子: ... &n ...… 查看全部问答∨ |
|
小弟在一个项目下需要做自动升级,苦于该项目的开发模式是native的方式,需要把自己的代码和OS的代码一起编译成BIN文件烧入手机。所以这种模式,自动升级无法实现。现在想做一个类似DLL动态加载的方式。主要思路是把程序编译成ELF格式的文件,然后在 ...… 查看全部问答∨ |
|
请教版主---PWM输入模式中SelecttheTIM2InputTrigger 例子程序中是使用TIM2_CH2作为input port的,使用的是TI2FP2。我现在同时要使用TIM2_CH4作为input port。 那我ch4的触发输入还是用TI2FP2,我就在TIM_PWMIConfig()里面再增加了CH4通道的配置,用的是TI3,TI4,因为TI1,TI2例程 ...… 查看全部问答∨ |
|
我用的官网给的方案,PDF是AN1094,提示下载成功,但是程序不跑,有做过pic33的bootloader 的 请给我个建议 谢谢了… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- phyBOARD-i.MX 8M Plus 开发板来袭 免费申请进行时!
- 阅读TI Think.lnnovate 神级DIY系列博文,你来畅想我送礼!
- Microchip直播|如何在ADAS系统中解决精密授时挑战
- 有奖直播:Keysight World Tech Day 2024 汽车分论坛|汽车自动驾驶与新能源
- TI 技术大咖带你领略独一无二的MCU世界 推荐、抢楼全有礼!
- 有奖体验TouchGFX,开启你的创意GUI之旅
- 有奖直播 | 德州仪器基于 Arm 的 AM62 处理器简介
- 【泰有聊】第三期:参与泰克揭秘探头行动,瓜分2019元新年红包
- 了解数字功能的模拟控制器,千元好礼等你来拿!