请问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
}
8-Pin, 特殊,见下表
STC8G1K08A-36I-SOP8:
只有 T1 做波特率发生器,无 T2 !
定时器不够时,用 CCP0/CCP1/CCP2 这3个定时器
STC8系列4组串口同时通信的程序,Modbus 演示程序 - 串行口,DMA支持的4组串口,RS232,RS485 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
全球最强的 【串口助手】,还有 【串口绘图】 的视频讲解
视频讲解:串口绘图功能、串口助手高级应用、STC8库函数|串口库函数功能介绍 - 串行口,DMA支持的4组串口,RS232,RS485 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
对P_SW1寄存器的B7B6设置01 UART1_SW_P36_P37的值应该就是01,这样配置看起来应该就是将串口1映射到P3.2和P3.3。如果串口不通,再查一下你用的库函数估计还有地方不适合8脚的STC8G1K08A。
PS:51单片机本来就简单,不推荐使用库函数,问题排查太复杂了。
页:
[1]
2