野火串口发送程序,多个串口实验源码
printf(interrupt)
printf(polling)查询法
USART1中断接发
USART1接发
USART2接发
USART3接发
USART4接发
USART5接发
stm32单片机源程序如下:
- /**
- ******************************************************************************
- * @file main.c
- * @author fire
- * @version V1.0
- * @date 2013-xx-xx
- * @brief 串口中断接收测试
- */
-
-
- #include "stm32f10x.h"
- #include "bsp_usart1.h"
- #include "uart_api.h"
- /**
- * @brief 主函数
- * @param 无
- * @retval 无
- */
- int main(void)
- {
- uint8_t ucaRxBuf[1024];
- uint16_t usRxCount;
- uint8_t ucTemp;
-
- /* USART1 配置模式为 115200 8-N-1,中断接收 */
- comInit();
- printf("\r\n 这是一个串口中断接收回显实验 \r\n");
- printf("\r\n 请在超级终端或者串口调试助手输入字符 \r\n");
- /* 简单的通信协议,遇到回车换行符认为1个命令帧 */
- usRxCount = 0;
- for(;;)
- {
- /*
- 接收COM1口的数据,分析并处理
- 可以将此段代码封装为一个函数,在主程序其它流程调用
- */
- if (comGetChar(COM1, &ucTemp))
- {
- if (usRxCount < sizeof(ucaRxBuf))
- {
- ucaRxBuf[usRxCount++] = ucTemp;
- }
- else
- {
- usRxCount = 0;
- }
-
- /* 遇到换行字符,认为接收到一个命令 */
- if (ucTemp == 0x0A) /* 换行字符 */
- {
- /* 在接收到的字符串加1个前缀,以示区别 */
- comSendBuf(COM1, (uint8_t *)"COM1 ", 5);
- comSendBuf(COM1, ucaRxBuf, usRxCount);
- usRxCount = 0;
- }
- }
- }
- }
- /*********************************************END OF FILE**********************/
复制代码
所有资料51hei提供下载:
5-USART—串口通信.rar
(2.35 MB, 下载次数: 129)
|