完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32cubeMX推出一久了,而且现在除了F1以外基本上都有了。这段时间乘有点时间,来试试这个工具。
硬件资源:采用STM32F0的探索套件 实验目的: 1、完成串口发送8个数据功能,配置串口为接收中断,当串口接收到指定数目的数据时,产生中断,中断函数将接收的数据发送出来 2、本实验具有按键(PA0)中断功能,当按下按键,串口发送数据。 具体配置: 1、选择管脚,PA0用于按键,点击该引脚选择输入。 PC8,PC9用于LED灯。点击该引脚选择输出。 PA9,PA10用于串口1,串口模式选择Asynchronous。(但选择并配置了串口,这两个引脚自动就变绿了) 2、串口配置:(这个类似于我们以前编程时的串口初始化部分,包括波特率、数据位、停止位等) 这里需要注意的是:波特率最小都是115200,想设置9600,那只能最后在程序中改了。 3、串口中断配置: 4、完了以后就可以生成IAR或KEIL程序了,这一步大家都知道了,就不截图说明了。 以下是我的测试程序。 程序说明: 1、首先定义发送接收数组 uint8_t TxData[8]= {0x55,0x65,0x01,0x02,0x03,0x04,0x05,0x06}; uint8_t RxData[8]; 2、如果是轮询方式发送数据,采用HAL_UART_Transmit(&huart1, TxData,8,10); 如果是中断方式接收数据,采用HAL_UART_Receive_IT(&huart1, RxData,8); while (1) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_9); HAL_Delay(1000); //HAL_UART_Transmit(&huart1,TxData,8,10); /* 通过串口1发送数组TxData的8个数据 */ HAL_UART_Receive_IT(&huart1, RxData,8); /* 采用中断方式接收8个数据 */ } 3、串口接收中断服务程序: void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) { HAL_UART_Transmit(&huart1,RxData,8,10); } 4、按键中断服务程序: void HAL_GPIO_EXti_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == GPIO_PIN_0) { HAL_UART_Transmit(&huart1,RxData,8,10); } } 使用总结、疑问及需要注意的地方: 1、串口中断配置只是具有串口全局中断,如何配置接收中断或发送中断,或空闲中断?(这点等待高手帮忙) 2、HAL_UART_Receive_IT(&huart1, RxData,8); 如果放置在while循环中,那么就可以连续进行接收中断,RxData的值就会根据接收的数据发生变化,如果放在while外面,那么只进行一次接收中断。 3、针对第2点,那么如果要一直进行中断配置,就要在主程序的while中调用,如果只是进行一次,那么就在需要的时候调用。 4、由于不能配置中断类型,所以如果把中断服务函数HAL_UART_Transmit(&huart1, RxData,8,10);放在voidUSART1_IRQHandler(void)里面就只能收到第一个数据,其他是0。比如串口调试助手发送0x55,0x65,0x01,0x02,0x03,0x04,0x05,0x06,那么中断中发送出来的数据就是0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
|
相关推荐
|
|
751 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
1330 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1184 浏览 0 评论
899 浏览 0 评论
947 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11866 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 22:47 , Processed in 0.542362 second(s), Total 68, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号