完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
1.串口1 USART1初始化 [注意使能接收中断]
/** * @brief USART1 Initialization Function * @param None * @retval None */ UART_HandleTypeDef huart1; void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } //使能接收中断 HAL_UART_Receive_IT(&huart1,usart1_RxBuf_temp,1); // Enable the USART1 Interrupt } 2.串口接收中断 /** * @brief This function handles USART1 global interrupt / USART1 wake-up interrupt through EXTI line 25. */ void USART1_IRQHandler(void) { HAL_UART_IRQHandler(&huart1); } 3.串口接收中断完成回调函数 /** * @brief Rx Transfer completed callback * @param UartHandle: UART handle * @note This example shows a simple way to report end of IT Rx transfer, and * you can add your own implementation. * @retval None */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) { if(UartHandle->Instance == USART1) { Netctrlp_Receive(usart1_RxBuf_temp[0]); HAL_UART_Receive_IT(&huart1,usart1_RxBuf_temp,1); // 重新使能串口1接收中断 } } 4.重定向输入输出,将输出重定向至printf uint8_t ch; uint8_t ch_r; //重写这个函数,重定向printf函数到串口,意思就是说printf直接输出到串口,其默认输出到控制台的 /*fputc*/ int fputc(int c, FILE * f) { ch=c; // HAL_UART_Transmit_IT(&huart1,&ch,1);//发送串口 HAL_UART_Transmit(&huart1,&ch,1,100);//发送串口 return ch; } //重定向scanf函数到串口 意思就是说接受串口发过来的数据,其默认是接受控制台的数据 /*fgetc*/ int fgetc(FILE * F) { HAL_UART_Receive_IT(&huart1,&ch_r,1);//接收 return ch_r; } 5.main.c 主函数 int main(void) //SLAVE { HAL_Init(); /* Configure the system clock */ SystemClock_Config(); MX_USART1_UART_Init(); while(1){ DBG_print(DBG_DEBUG, " A."); HAL_Delay(100); } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1847浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
609浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
507浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
488浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:13 , Processed in 0.627215 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号