qazplm3218 发表于 2019-4-13 08:47:22

五哥1 发表于 2019-4-13 05:56
你的硬件部分是不是无字库12864的屏,忙检测程序在哪?用030芯片都能驱动展示数据,建议你再优化下程序。 ...

是不带字库的LCD12864屏
没有Check Busy函数,直接用延时函数代替

void lcd_write_com(uint32_t data)      //LCD12864写指令函数
{   
//systick_delay_us(10);
      Delay(0x60);
lcd_rs_clr();
      __NOP();__NOP();__NOP();__NOP();__NOP();
      lcd_data(data);
lcd_e_set();
      __NOP();__NOP();__NOP();__NOP();__NOP();
lcd_e_clr();
      __NOP();__NOP();__NOP();__NOP();__NOP();
}

void lcd_write_com(uint32_t data)      //LCD12864写数据函数
{
//systick_delay_us(10);
      Delay(0x60);
lcd_rs_clr();
      __NOP();__NOP();__NOP();__NOP();__NOP();
      lcd_data(data);
lcd_e_set();
      __NOP();__NOP();__NOP();__NOP();__NOP();
lcd_e_clr();
      __NOP();__NOP();__NOP();__NOP();__NOP();
}

qazplm3218 发表于 2019-4-13 09:50:59

我又重新测试了下,接收数据处理后,不送LCD12864屏,直接送到74HC595,驱动8个指示灯显示,更新速度也是要好几秒,迟缓,卡顿。难道说明STM32F103对输入引脚的检测速度不够快吗?之前用PIC16系列和AVR系列没出现过这种现象,实时显示数据很流畅的

stm1024 发表于 2019-4-13 10:14:22

qazplm3218 发表于 2019-4-13 08:46
没有Check Busy函数,直接用延时函数代替

void lcd_write_com(uint32_t data)      //LC ...

10us估计不够吧?

qazplm3218 发表于 2019-4-13 10:30:10

stm1024 发表于 2019-4-13 10:14
10us估计不够吧?

我把这个时间加长也是一样的现象。
我又重新测试了下,接收数据处理后,不送LCD12864屏,直接送到74HC595,驱动8个指示灯显示,更新速度也是要好几秒,迟缓,卡顿,程序里就只有数据处理程序和74HC595驱动

select326 发表于 2019-4-13 11:34:11

我觉得你可以做一个转发实验,这边接收,然后再转发出去。这样,然后抓个波形,测量下速度。

qazplm3218 发表于 2019-4-13 13:04:40

select326 发表于 2019-4-13 11:34
我觉得你可以做一个转发实验,这边接收,然后再转发出去。这样,然后抓个波形,测量下速度。 ...

如果我用串口转发出去,是抓串口的波形吗?我怀疑是芯片对输入IO引脚的检测速度跟不上,这样的话抓串口的波形,测速度有用吗?
应该是抓芯片对输入IO口的检测速度,这个该如何测量??

qazplm3218 发表于 2019-4-13 14:09:57

主程序里只放数据接收、数据处理程序。通过500ms定时器,将接收的数据向串口发送数据。发送格式为:数据的百位、 数据十位、数据个位+FF
看截图,数据从0V-230V,将近10s的时间

qazplm3218 发表于 2019-4-13 14:13:27

时间算错了,是将近20秒的时间

五哥1 发表于 2019-4-14 01:57:50

楼主能把完整程序分享给大家吗?
页: 1 [2]
查看完整版本: STM32F103 IO口设置为输入状态问题??