查看: 215|回复: 3
打印 上一主题 下一主题

stm32串口发送数据问题很多,求帮助!

[复制链接] qrcode

1

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
楼主
跳转到指定楼层
发表于 2013-4-19 06:47 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if(TIM6->SR & 0X0001)
{
if(num_10ms==2) //读取各电机码盘测速值
{
speed_1=TIM2->CNT;
speed_2=TIM3->CNT;
speed_3=TIM4->CNT;
speed_4=TIM5->CNT;

TIM2->CNT = 0;
TIM3->CNT = 0;
TIM4->CNT = 0;
TIM5->CNT = 0;

USART1_SendChar(BYTE1(speed_1));
USART1_SendChar(BYTE0(speed_1));

程序是在定时器中断函数中读取计数器的值,然后把这个值通过串口发送给电脑。发送的值在150左右。
while(1)
{

{
//Wave_handle();
delay_ms(60);

USART1_SendChar(BYTE1(speed_1));
USART1_SendChar(BYTE0(speed_1));
}
// LCD_Write_ASCII_String(0,0,"wor");
// Motor_Start(PWM_MAX1,PWM_MAX2,PWM_MAX3,PWM_MAX4);

}
而把它改到main函数主循环中,通过串口将数据发送给电脑,发送的值就全变成0了,这到底是怎么回事啊?求指导。
回复

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
沙发
发表于 2013-5-11 12:33 PM | 只看该作者
delay_ms(60);这个用的是什么延时函数?显然应该用定时器中断计算速度,并置位串口发送标志,然后在主循环中通过这个标志位来串口发送,并清除标志。                                                                                                                                                                       
回复 支持 反对

使用道具 举报

1

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
板凳
 楼主| 发表于 2013-5-17 12:19 PM | 只看该作者
噢,多谢提醒!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

1

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
地板
 楼主| 发表于 2013-5-17 02:07 PM | 只看该作者
学习了                                                                                                                                                                       
回复 支持 反对

使用道具 举报

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

本版积分规则

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