首页 » 智能 » STM32F030 Nucleo-开拓调试的经验USART的重要性(二)_函数_数据

STM32F030 Nucleo-开拓调试的经验USART的重要性(二)_函数_数据

南宫静远 2024-12-07 16:19:25 0

扫一扫用手机浏览

文章目录 [+]

查看牛客板卡的用户手册《STM32 Nucleo-64 boards》,找到下图:

(3)在库中找到USART干系的接口。

STM32F030 Nucleo-开拓调试的经验USART的重要性(二)_函数_数据 智能

先确定要调试功能:

打开GPIO时钟和USART1时钟,选择时钟源,配置复用IO模式:

void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); //GPIO时钟使能函数

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); //USART1时钟使能函数

void RCC_USARTCLKConfig(uint32_t RCC_USARTCLK);//USART1时钟源选择函数

void GPIO_PinAFConfig(GPIO_TypeDef GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF);//IO口复用配置函数。

配置GPIO口:

void GPIO_Init(GPIO_TypeDef GPIOx, GPIO_InitTypeDef GPIO_InitStruct)

USART初始化并启动USART通信:

void USART_Init(USART_TypeDef USARTx, USART_InitTypeDef USART_InitStruct);//USART初始化函数

void USART_Cmd(USART_TypeDef USARTx, FunctionalState NewState);//USART使能函数

void USART_ClearFlag(USART_TypeDef USARTx, uint32_t USART_FLAG);//USART清标志函数

配置中断:

对付USART的吸收功能来说,可以利用两种办法,分别是循环检测吸收办法和中断办法吸收数据,前一种办法会壅塞占用MCU,导致效率低下,而中断办法吸收数据则不会壅塞,以是这里利用中断办法吸收数据。

void USART_ITConfig(USART_TypeDef USARTx, uint32_t USART_IT, FunctionalState NewState);//USART中断使能函数

void NVIC_Init(NVIC_InitTypeDef NVIC_InitStruct);//嵌套向量中断掌握器初始化配置函数

吸收和发送数据:

FlagStatus USART_GetFlagStatus(USART_TypeDef USARTx, uint32_t USART_FLAG);//获取USART状态标识函数

uint16_t USART_ReceiveData(USART_TypeDef USARTx);//USART读取数据函数

void USART_SendData(USART_TypeDef USARTx, uint16_t Data);//USART发送数据函数

那么这么多函数是从哪里找的呢??答案是,在keil上搜索得到的,以是这种开拓的办法便是,当调试某个功能时,找到与之干系的文件比如:stm32f0xx_usart.c和stm32f0xx_usart.h文件,其由于GPIO干系,又去找stm32f0xx_gpio.c和stm32f0xx_gpio.h文件,其时钟还与RCC干系,就去找stm32f0xx_rcc.c和stm32f0xx_rcc.h文件,又还与NVIC干系,以是又去找stm32f0xx_misc.c和stm32f0xx_misc.h文件。
总之便是一句话,它须要什么就给它什么。

还有个问题便是,你咋知道先配置什么,再配置什么的???答案是:实在我也不知道,是参考手册或者编程手册见告我的,比如下图:

图已经见告咱数据是怎么传输的了,该当配置啥寄存器等等,那咱不便是知道怎么配置了么》??便是这样的。

(4)配上COMS电平转TTL电平的模块,比如MAX232,MAX3232,RS232,PL2303等。
与PC机连接通信。

我用的便是上图这种模块了,连接是:

MCU_Tx---------模块Rx

MCU_Rx---------模块Tx

然后就与PC机连接,再连上串口调试助手。

OK!到这里就还有一点要讲的了!那便是波特率,实在便是单片机或打算机串口通信时的速率。
其实在手册当中也给咱讲的一目了然了,

人家讲的很清楚,还给咱举了例子,如何打算,如何配置。
实在如上图的打算过程只是对付玩操作寄存器的人才须要考虑的打算,如果直接用库函数开拓,直接指定波特率就好了。

还有便是,普通的通信该当配置成什么呢???三个字“8N1,无奇偶”,啥意思呢??8个数据为,无流控,1个停滞位,无奇偶校验,便是这么大略。

且看库的配置构造体:

指定波特率,设置数据位长度8位,1个停滞位,无奇偶校验,输入和输出模式,无流控。
如下图:

详细初始化如下:

USART初始化:

NVIC初始化:

初始化就如上了。

那么,咱要发送数据哇!以是,咋就写写:

发送一个字节:

发送字符串:

发送十进制数据:

OK!发送的便是这样,没什么好阐明的!哈哈!

但是,如果用来进行调试的话,以上方法彷佛不太给力哦,为毛呢??比如所咱想发送字符串和数据殽杂呢》》按照上面的方法,那可得写好几句打印函数呢!嘿嘿!那咱就把ANSI标准C的printf移植过来用吧!肿么玩呢??实在,两步就好:

(1)包含头文件#include

(2)如下图:

这几个意思呢??而且,明眼人一看就能瞥见,在咱的工程中,压根就没有调用int fputc(int ch, FILE f)这个函数,只是写在那里了而已,哈哈!实在呢,int fputc(int ch, FILE f)函数是printf函数开放的一个从硬件读取数据的接口,那么在哪里调用呢??肯定在C标志库调用啦!只是咱看不到罢了。
以是,不用管它,写上就好!哈哈!

这样,咱就能在工程中直策应用printf函数了,至于怎么利用,不会的话,自己好好的去学习C吧。

发送数据讲完了,咱就说说吸收数据了,我在这里就大略的表示一下,详细的还要看实际运用的须要修正。

首先咱得找到stm32f0xx_it.c文件,然后再文件中任意位置写函数

void USART1_IRQHandler(void)

{

}

那么这个函数名从哪来的呢??又是干啥的呢??

还记得前面提到的在启动文件建立的中断向量表吗?打开startup_stm32f030.s文件,中断向量表如下:

没错,当发生中断时,MCU会:

(1)将现有数据保存在相应寄存器中,即保存现场

(2)跳转到中断向量表中查询发生中断的外设,并找到中断入口地址

(3)实行中断功能

(4)跳出中断,从相应寄存器中读取数据,即规复现场

中断的过程便是上面这几个了,那么void USART1_IRQHandler(void)函数便是USART1的中断入口地址了,便是这么大略。
再多说一点便是,有些人说,瞥见别人在函数的任意位置填写任意的函数,他就直接成了中断函数了,为毛这里要有ST规定了名字啊???实在我想说,只要你愉快,想怎么样都可以;首先,void USART1_IRQHandler(void)函数可以存在于工程中的任意C文件,再便是,如果想自己命名,那就修正一下中断向量表的名字为你想要的名字即可,只要你愉快。

OK!实现就如下图了:

上图首先检测USART1读标志,然后读取数据,再然后将其打印出来个咱看,数据是否发送成功。
然后情形标志位。
在这里只是验证通信的成功。

以是当我们从串口调试助手发送数据后,发送的数据有会在串口调试助手上面打印出来,有点像回显。
哈哈!便是这么大略了!

详细的主程序调用如下:

很大略!一贯在输出!哈哈!OK了!

这些只是个人调试和理解,如若有误,请包涵!

嵌入式物联网须要学的东西真的非常多,千万不要学错了路线和内容,导致人为要不上去!

无偿分享大家一个资料包,差不多150多G。
里面学习内容、面经、项目都比较新也比较全!
某鱼上买估计至少要好几十。

扫码进群领资料

标签:

相关文章

万科IT客服,构建智慧社区,助力美好生活

随着科技的飞速发展,信息技术已经渗透到我们生活的方方面面。在我国,万科集团作为一家具有社会责任感的企业,始终致力于为业主打造智慧、...

智能 2024-12-30 阅读0 评论0

上海IT实习,介绍未来职业发展的金钥匙

随着我国经济的快速发展,IT行业已成为我国最具活力和潜力的行业之一。近年来,越来越多的应届毕业生选择投身IT行业,而上海作为我国经...

智能 2024-12-30 阅读0 评论0

上海IT测试行业的崛起与挑战

随着我国经济社会的快速发展,信息技术(IT)行业逐渐成为推动经济增长的重要引擎。上海,作为我国的经济、金融和科技创新中心,IT测试...

智能 2024-12-30 阅读0 评论0

不凡芒果IT,探索科技与创新的力量

在当今这个飞速发展的时代,信息技术(IT)已经成为了推动社会进步的重要力量。在我国,众多优秀的IT企业如雨后春笋般涌现,其中不凡芒...

智能 2024-12-30 阅读0 评论0