This paper presents a power-rate adaptive control algorithm based on a distributed Stackelberg game to address power control and mutual interference issues between primary and secondary users in the uplink of cognitive radio networks. First of all, a two-layer network model of primary and secondary users is established, and their utility functions are redesigned. The primary user regulates the secondary users transmit power through the unit interference price to minimize interference. Secondly, the power-rate adaptive control algorithm is derived by obtaining the new utility function, and it is proven that the algorithm converges to Nash and Stackelberg equilibria. Finally, simulation results demonstrate that the algorithm can quickly converge within seven iterations and reduce the transmit power of secondary users effectively. Additionally, the transmission rate is increased, and the utility and channel capacity of primary users are improved while maintaining the service quality of both primary and secondary users. The algorithm's adaptiveness and robustness are shown to be excellent, and it can overcome the near and far effects to a certain extent.