夕口山关 发表于 2023-11-7 15:23:20

gentleman 发表于 2023-11-7 12:45
寄存器是这么用的

我知道是这样用的 但是我的写法是从GPIO_Inilize()函数里面直接拿出来用的

夕口山关 发表于 2023-11-7 15:28:40

zhp 发表于 2023-11-7 15:00
GPIOx->Pin的值是每个I/O的bit mask,定义如下




那我那样赋值应该没有错吧 但是输出不对 不知道哪里错了

zhp 发表于 2023-11-7 16:49:01

本帖最后由 zhp 于 2023-11-7 16:52 编辑

夕口山关 发表于 2023-11-7 15:28
那我那样赋值应该没有错吧 但是输出不对 不知道哪里错了
你这样赋值肯定不对啊,都和你说了
P10、P11、P30、P31这些都是定义的sfr
不能当常数使用

比如:P30定义为
sbit P30 = P3^0;
代码中读取P30,则是读取当前P3.0口的外部的高低电平的状态
怎么可能拿外部的电平状态来当作常数使用呢

你这种赋值完全是莫名其妙,能赋值正确才怪

如果实在不知道怎么配置I/O,就使用下载软件中的
I/O配置工具来生成配置代码吧




gentleman 发表于 2023-11-7 18:37:07

夕口山关 发表于 2023-11-7 15:23
我知道是这样用的 但是我的写法是从GPIO_Inilize()函数里面直接拿出来用的


按你的想法,应该这样写
P0M1 &=~GPIO_Pin_0;
P0M0 &=~GPIO_Pin_0;

夕口山关 发表于 2023-11-8 08:38:50

gentleman 发表于 2023-11-7 18:37
按你的想法,应该这样写
P0M1 &=~GPIO_Pin_0;
P0M0 &=~GPIO_Pin_0;

噢噢 懂了

夕口山关 发表于 2023-11-8 08:39:26

zhp 发表于 2023-11-7 16:49
你这样赋值肯定不对啊,都和你说了
P10、P11、P30、P31这些都是定义的sfr
不能当常数使用


明白了{:4_196:}

夕口山关 发表于 2023-11-8 09:34:04

本帖最后由 夕口山关 于 2023-11-8 17:49 编辑

zhp 发表于 2023-11-7 16:49
你这样赋值肯定不对啊,都和你说了
P10、P11、P30、P31这些都是定义的sfr
不能当常数使用

用了你的方法 把串口2和3改成准双向口后 串口2和串口3依旧是在发送时 高电平只有很短的20ns(串口2)和280ns(串口3) 是串口2和串口3不能用准双向口模式?
页: 1 [2]
查看完整版本: STC8G2K64S4芯片的串口2 串口3使用准双向口输出不正常 使用推挽输出时有疑问