OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3774|回复: 4

贴子一发 石沉大海 蓝瘦香菇《简单的小问题 求解 谢谢你!》

[复制链接]

23

主题

69

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-5
在线时间
50 小时
发表于 2017-1-13 10:12:03 | 显示全部楼层 |阅读模式
6金钱
这是个用UART+RS485通信的程序  下面是main()函数   
遇到问题是下载代码后立即向串口发送数据它能收到,后面再发就收不到,调了多次超时参数也加过while(HAL_GetState(&huart7)==RESET);  不大清楚这两个函数,只能加进去看看效果 ,刚接触F7,请指点迷津!谢谢!
[mw_shl_code=applescript,true]int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_UART7_Init();

  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

                while(HAL_UART_GetState(&huart7) == RESET );
                HAL_UART_Receive(&huart7,aRxBuffer,5,5000); //发送5个字符  aRxBuffer 和 aTxBuffer  数组长度分别是6和64

                                uint16_t i;
                for(i=0;i<5;i++)
                {
                        aTxBuffer=aRxBuffer;  //收到的数据填充到发送数组
                }
                HAL_Delay(1000);
  while(HAL_UART_GetState(&huart7) == RESET );
                           HAL_GPIO_WritePin(GPIOE,DE_Pin, GPIO_PIN_SET); //使能485发送
                HAL_UART_Transmit(&huart7,aTxBuffer,5,100);
                HAL_GPIO_WritePin(GPIOE,DE_Pin, GPIO_PIN_RESET); //

                /* USER CODE END WHILE */
  }
  /* USER CODE END 3 */

}[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

谢谢上面那个轮询的问题解决了,主要还是刚接触串口 ,很多不懂,HAL库的函数手册讲得不是很详细,只有写上去下载看效果,现在又遇到一个问题,中断函数进不去 。请师兄推荐一本讲单片机原理的书,现在要弄好几块单片机,stm32f1,stm32f7,和msp432,刚接触后面两种,而且是刚出来的,新手研究起来感觉老火
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

69

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-5
在线时间
50 小时
 楼主| 发表于 2017-1-13 10:12:04 | 显示全部楼层
xuande 发表于 2017-1-13 10:45
不了解程序里state的具体定义,这是要查手册的。

烦烦说下关键:

谢谢上面那个轮询的问题解决了,主要还是刚接触串口 ,很多不懂,HAL库的函数手册讲得不是很详细,只有写上去下载看效果,现在又遇到一个问题,中断函数进不去 。请师兄推荐一本讲单片机原理的书,现在要弄好几块单片机,stm32f1,stm32f7,和msp432,刚接触后面两种,而且是刚出来的,新手研究起来感觉老火
回复

使用道具 举报

23

主题

69

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-5
在线时间
50 小时
 楼主| 发表于 2017-1-13 10:34:48 | 显示全部楼层
搞好了  怎么退贴  
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2017-1-13 10:45:43 | 显示全部楼层

不了解程序里state的具体定义,这是要查手册的。

烦烦说下关键:
理解串口通信的物理过程,
发送一个字节后线路是什么状态,怎么样随时间变化,变化到什么程度会引起什么动作、事件,CPU是什么状态,
然后根据物理过程来编写时序。

回复

使用道具 举报

23

主题

69

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-5
在线时间
50 小时
 楼主| 发表于 2017-1-13 16:01:33 | 显示全部楼层
根据物理过程来编写时序还没这理念,就是看管脚高低电平使能发送和接收
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 19:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表