完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、 基于寄存器与基于固件库编程方式的差异
使用固件库,目前比较多的例程是使用固件库编写的。固件库编写方式,特点是简单易于理解,资料多。新手适合用这种方式入门。 使用寄存器,想要深入理解CortexM3内核或是需要为了获得更好的可移植性,学习寄存器编程会比较有帮助。但是从专业的角度上看,寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。优点:①具体参数更直观 ②程序运行占用资源少。 缺点:①开发速度慢 ②程序可读性差 ③维护复杂。开库开发方式则正好弥补了寄存器开发的缺点。 二、stm32串口通信 1. 前期准备 硬件 stm32f103c8t6核心板 推荐使用stm32f103ve开发板,核心板操作较为困难,容易出现线路连接不良、连接失误等各种意外。同时,开发板可以从网上找到直接可用的资料代码,大大节省时间,提高效率。ST-link接口 USB-TLL转换线 以及数量足够的杜邦线 软件 STlink驱动 可自行百度下载USB转串口驱动、野火多功能调试助手 MDK Keil5 连接
2.编写程序并烧录 设计程序 要求STM32系统给上位机(win10)连续发送“hello windows!”,当上位机给stm32发送“Stop,stm32”后,stm32停止发送。 代码如下: stm32f10x_it.c #include "stm32f10x_it.h" #include "bsp_usart.h" void NMI_Handler(void){} void HardFault_Handler(void) { while (1) {} } void MemManage_Handler(void) { while (1){} } void BusFault_Handler(void) { while (1){} } void UsageFault_Handler(void) { while (1){} } void SVC_Handler(void){} void DebugMon_Handler(void){} void PendSV_Handler(void){} void SysTick_Handler(void){} // 串口中断服务 int i=0; uint8_t ucTemp[50]; void DEBUG_USART_IRQHandler(void) { if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET){ ucTemp = USART_ReceiveData(USART1); } if(ucTemp == '!'){ if(ucTemp[i-1] == '2'&&ucTemp[i-2] == '3'&&ucTemp[i-3] == 'm'&&ucTemp[i-4] == 't'&&ucTemp[i-5] == 's'&&ucTemp[i-6] == ' ') if(ucTemp[i-7] == 'p'&&ucTemp[i-8] == 'o'&&ucTemp[i-9] == 't'&&ucTemp[i-10] == 's'){ printf("收到!"); while(1); } } i++; } main.c #include "stm32f10x.h" #include "bsp_usart.h" void delay(uint32_t count) { while(count--); } int main(void) { USART_Config(); while(1) { printf("hello windows 10!n"); delay(5000000); } } 烧录程序 在Keil上进行如下操作 出现上图信息代表着我们写好的程序就成功的通过ST-Link烧录到板子上了,我们打开野火多功能助手看看 这时的stm32像一个遇见了失散多年的亲妈一样在疯狂对着windows10发送“hello windows 10!”,我们无情的发送“stop,stm32!”试试 果然老实了,串口通信成功! 三、总结 总体来说,stm32实现串口通信的基础操作还是很简单的,需要注意一下几点防止踩坑
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
554浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 07:45 , Processed in 0.990240 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号