完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1. STM32cubemx 串口设置
代码地址 1. 新建项目选择芯片。 2. 设置时钟源 点击 System Core , 选择RCC 将其时钟源设置为外部晶振,如下图: 3.配置时钟树 将 HCLEK 配置为最大时钟,点击回车,软件归根据芯片自动配置其他总线时钟。 3.配置串口 点击 Connettivity , 选择USART1 将其模式选择为异步通信模式,其他配置串口配置参数根据实际情况修改,如下图: 4. 生产代码工程 配置工程并生成代码。 5. 测试串口输出 打开工程,在main.c中添加如下代码测试代码输出, HAL_UART_Transmit(&huart1, “testrn”, sizeof(“testrn”), 0xffff); HAL_Delay(1000); 6. 启用printf函数 新建my_printf.c文件 #include "stdio.h" #include "main.h" #ifdef __GNUC_ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif extern UART_HandleTypeDef huart1; //外部串口 PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); return ch; } 测试printf函数,在main.c中添加如下代码测试代码输出, printf(“test = %d rn”, 1); HAL_Delay(1000); 7. 设置中断 启用串口全局中断 8.配置中断嵌套 9. 启动中断,添加中断回调函数 uint8_t aRxBuffer[1];//接受缓存 接受一个字节进入中断 HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1); //启动接受中断 //中断回调函数 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (huart->Instance == USART1) { HAL_UART_Transmit(&huart1, (uint8_t *)aRxBuffer, 1,0xFFFF);//发送接收数据 HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1);//启动下一轮接收 } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1936浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
729浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
569浏览 3评论
594浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
552浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:00 , Processed in 0.774497 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号