Dwyer 发表于 2024-3-9 21:23:55

请问STC8G1K08A的P3.2和P3.3如何作为串口用?| 已解决

我按照例程配置如下,官方的例程并没有针对STC8G1K08A的P3.2和P3.3的例程,
我看了手册发现引脚切换那边的 S1_S, P3.6, P37 和 P3.2P,3.3的配置都是01.
所以选择了UART1_SW_P36_P37。

但是这样串口还是无法正常工作,
请问STC8G1K08A的P3.2和P3.3应该如何配置成串口使用??




void      UART_config(void)
{
      COMx_InitDefine                COMx_InitStructure;                                        //结构定义

      COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;      //模式, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
      COMx_InitStructure.UART_BRT_Use   = BRT_Timer1;                        //选择波特率发生器, BRT_Timer1, BRT_Timer2 (注意: 串口2固定使用BRT_Timer2)
      COMx_InitStructure.UART_BaudRate= 115200ul;                        //波特率, 一般 110 ~ 115200
      COMx_InitStructure.UART_RxEnable= ENABLE;                              //接收允许,   ENABLE或DISABLE
      COMx_InitStructure.BaudRateDouble = DISABLE;                        //波特率加倍, ENABLE或DISABLE
      UART_Configuration(UART1, &COMx_InitStructure);                //初始化串口1 UART1,UART2,UART3,UART4
      NVIC_UART1_Init(ENABLE,Priority_1);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3

      UART1_SW(UART1_SW_P36_P37);                //UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17,UART1_SW_P43_P44
}






神农鼎 发表于 2024-3-9 22:05:41





神农鼎 发表于 2024-3-9 22:06:12


神农鼎 发表于 2024-3-9 22:06:39


8-Pin, 特殊,见下表


神农鼎 发表于 2024-3-9 22:09:27


神农鼎 发表于 2024-3-9 22:10:12


神农鼎 发表于 2024-3-9 22:13:02

STC8G1K08A-36I-SOP8:
只有 T1 做波特率发生器,无 T2 !
定时器不够时,用 CCP0/CCP1/CCP2 这3个定时器



STC8系列4组串口同时通信的程序,Modbus 演示程序 - 串行口,DMA支持的4组串口,RS232,RS485 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

神农鼎 发表于 2024-3-9 22:15:18

全球最强的 【串口助手】,还有 【串口绘图】 的视频讲解



视频讲解:串口绘图功能、串口助手高级应用、STC8库函数|串口库函数功能介绍 - 串行口,DMA支持的4组串口,RS232,RS485 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

soma 发表于 2024-3-9 22:25:43

对P_SW1寄存器的B7B6设置01

21cnsound 发表于 2024-3-9 22:46:40

UART1_SW_P36_P37的值应该就是01,这样配置看起来应该就是将串口1映射到P3.2和P3.3。如果串口不通,再查一下你用的库函数估计还有地方不适合8脚的STC8G1K08A。
PS:51单片机本来就简单,不推荐使用库函数,问题排查太复杂了。
页: [1] 2
查看完整版本: 请问STC8G1K08A的P3.2和P3.3如何作为串口用?| 已解决